일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 팩토리메소드
- 추상팩토리
- 알고리즘
- 테트로미노
- ps
- 재귀
- problemsolving
- FactoryMethod
- 반복자
- bfs
- 구조패턴
- 빌더패턴
- C
- 완전탐색
- 디자인패턴
- 14500
- 생성패턴
- 회전하는큐
- 백준
- 다이어그램
- 이터레이터
- 어댑터패턴
- UML
- AbstractFactory
- c++
- 클래스다이어그램
- 옵저버
- 행위패턴
- 데코레이터패턴
- C언어
- Today
- Total
목록STUDY/디자인패턴 (5)
salsa source
구조패턴 더 큰 구조를 형성하기 위해 어떻게 객체를 합성하는지와 관련된 패턴 클래스구조패턴 > 상속을 통한 인터페이스나 구현을 복합하는 패턴 > Adapter객체구조패턴 > 새로운 기능을 실현하기 위해 객체를 합성하는 법 제공 >Bridge, Composite, Decorator, Proxy, Flyweight 데코레이터패턴(Decorator Pattern) - 서브클래스에 유연성을 제공하여 소스를 변경하지 않고서도 부가적인 기능이 확장되어 실행할 수 있도록 주어진 상황 및 용도에 따라 어떤 객체에 책임을 덧붙이는 패턴 장점유연하게 기능 확장이 가능하다(상속보다는 더 융통성이 좋음) 단점자잘한 클래스가 많이 생기기 때문에 각 데코레이터 클래스들의 역할을 알아야한다. 예시 : 자바 파일 I/OInputSt..
행위패턴 객체들 간 행위 및 알고리즘 등과 관련된 패턴응용 분야에 따라 행위가 다른 객체로 옮겨가거나 알고리즘이 대체되는 경우 클래스행위패턴 > Interpreter, Template객체 행위패턴 > Chain of Resposibility, Command, Iterator, Mediator, Memento, Observer, State, Strategy, Visitor 반복자패턴(Iterator Pattern/이터레이터 패턴) - 내부 표현부를 노출하지 않고 어떤 객체에 속한 원소들을 순차적으로 접근할 수 있도록 하는 패턴. 비공개 순회를 통하여 원하는 데이터를 탐색 가능하다. 장점- 찾으려는 대상의 클래스 구현에 의존하지 않는다- 클래스의 재이용화를 촉진시킨다. 활용 예시- java list, map..
디자인패턴을 공부하면서 여러 게시글과 다양한 예제들을 보아왔지만 결국 기초가 되는건 디자인패턴의 기본 뼈대임을 깨달았다. 예제는 예시로써 이해를 도울 뿐이다. 결국 개념을 잡기 위해서는 기본 구조에 더욱 충실해야한다. 기본 구조를 가장 잘 나타내고 한 눈에 보기 쉽게 나타내는 것은 클래스 다이어그램이라고 생각한다. 그래서 내가 공부한 몇 개의 디자인패턴의 클래스 다이어그램과, 거기에 각 클래스에 대한 설명을 달아보려 한다. 디자인패턴은 크게 세 가지 종류로 나뉜다. [ 생성패턴, 행위패턴, 구조패턴 ]앞으로 이 세 가지 분류를 기준으로 주요 디자인패턴의 클래스다이어그램과 간략한 설명을 정리해보도록 하겠다. 생성패턴 인스턴스를 만드는 절차를 추상화 한 패턴 합성하는법, 객체의 표현방법 과 시스템을 분리한 ..
실제 Observer는 능동적으로 관찰하는 것이 아닌 Subject 역할로부터 전달되는 것을 수동적으로 기다리고 있음 => Publish-Subscribe패턴 이라고도 함 상태가 변경될 때 정해지지 않은 임의의 객체에게 변경사실을 알려줄 수 있다. 한 객체의 상태 변화를 정해지지 않은 여러 다른 객체에게 통지하고 싶을 때 사용 주제(subject) 객체와 옵저버 객체 주제객체 옵저버 목록 관리, 옵저버를 등록/제거 할 수 있는 메소드 제공 상태변경이 발생하면 등록된 옵저버에 변경 내역 알림 concreteSubject : 상태를 가지고 있는 역할 ConcreteObserver : 상태변화를 전달받는 역할 Subject, Observer : 위의 두 가지 역할을 연결 옵저버 추가 시 StatusChecke..
디자인패턴 the Gang of Four(GoF) 매일 쓰고있는 프로그램을 새로운 시점에서 다시 생각하고, 재사용을 쉽게 하고, 기능 확장이 쉬운 소프트웨어를 만들기 위한 유익한 기법. (GoF가 가장 유명) UML(Unified Modeling Language) 시스템을 시각화하거나 시스템의 사양이나 설계를 문서화하기 위한 표현 방법 클래스 다이어그램 클래스나 인스턴스, 인터페이스 등의 정적인 관계를 표현한 것. 필드 == 멤버변수 메소드 == 멤버함수 인터페이스 : 클래스들이 구현해야 하는 동작을 지정하는 데 사용되는 추상형 시퀀스 다이어그램 시간에 따라 변하는 것. 동적인 관계 Iterator - 순서대로 지정해서 처리하기 복수의 요소가 모여있는 집합에서 요소를 순서대로 지정해서 처리하는 Itera..