일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 디자인 패턴
- 코딩테스트 고득점 Kit
- 프로그래밍 언어론
- NextJS
- 자바스크립트
- useEffect
- 코딩테스트 고득점 Kit 완전탐색
- 프로그래머스 완전탐색
- React JS
- codesandbox
- 백준
- 데이터모델링과마이닝
- 장고
- react firebase
- useState
- 리액트 훅
- 자바 공부
- 리액트
- 코틀린
- websocket
- 프로그래머스
- 프로그래머스 자바
- JavaScript
- vanillaJS
- 컴퓨터 네트워크
- Java
- react
- design pattern
- react hook
- 자바
- Today
- Total
목록디자인 패턴 자바 (4)
기록하는 개발자
문제 알고리즘들을 캡슐화시키면서 중복되는 코드가 여러 클래스에 존재함 해결 방안 알고리즘의 중복되는 부분을 부모 class에 추상화 시키고 달라지는 부분만 subclass에서 구현 목적 - 알고리즘의 뼈대를 정의하고, 일부를 subclass로 위임한다. - Template Method는 알고리즘 구조를 변경하지 않고, 알고리즘의 일부 내용을 subclass에서 재정의할 수 있도록 한다. *strategy는 interface로 누구나 쓸 수 있도록 한 것 결과 - 중복되는 코드를 줄임. - 유지 보수에 유리함 Template Method Pattern Template Method 는 알고리즘의 각 단계들을 정의하며, 그 중 한 개 이상의 단계가 subclass에 의해 제공될 수 있다. 헐리우드 원칙 Tem..
문제 상태(state)가 여러 개 있고, if 문으로 상태를 통제하여 코드가 반복되고 복잡하다. 해결 방안 상태를 한 곳에서 관리 목적 - 객체의 내부 상태가 바뀔 대 객체의 동작을 변경할 수 있도록 함. - 객체는 자신의 calss를 바꾸는 것처럼 보임. 결과 변경 최소화 State Patten 용어 State -시점에 따라 특정 상태가 있어야 함. -처음에 가지게 되는 초기 상태(state) 또는 상황에 따라 여러 상태 가운데 한 상태를 가질 수 있다. Transition(전이) -외부 입력에 따라 가능한 상태로 전환 ex) 가전 제품 : on, off, sleep... 게임 캐릭터 : 걷는 상태, 뛰는 상태, 멈춘 상태...
문제 사용 객체의 API가 서로 다름 해결 방안 함수를 변환하는 객체를 중간에 넣음 목적 -class의 interface를 client가 원하는 형태의 또 다른 인터페이스로 변환. -adapter는 호환되지 않는 interface 때문에 동작하지 않는 class 들을 함께 동작할 수 있도록 만들어 줌 결과 변경 최소화 Adapter Pattern 객체를 감싸는 역할을 한다.(Object wrapping) -서로 호환되지 않는 두 개 interface를 연결하는 작업 -서로 다른 interface를 동일하게 변환 객체 지향 Adapter -일상 생활에서 쓰이는 adapter와 똑같은 역할을 함. -어떠한 interface를 client에서 요구하는 형태의 interface에 적응시켜주는 역할을 함. Ada..
문제 사용 객체의 API가 서로 다름 해결 방안 실행과 요청을 분리 목적 - 요구사항(요청, 명령)을 객체로 캡슐화 시킴 - 이를 이용해 다른 요구사항을 지닌 클라이언트를 매개변수화 시킬 수 있음. - 요구사항을 큐에 넣거나 로그로 남길 수 있으며 작업 취소(undo) 기능 지원도 가능 결과 (작은)클래스가 많아지나, 객체 사용에 필요한 복잡성을 제거하고 감춘다(함수 이름이 동일해진다) 설계 *Decoupling : 요청과 실행을 분리 Command -Receiver를 알고 있고, Receiver의 method를 호출 - Receiver의 method에서 사용되는 매개변수의 값들은 Command에 저장됨 ex)Command, ConcreteCommand Receiver - 실제 명령(command)수행 ..