일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 안드로이드주석
- 오픽
- 바텀업
- English
- ㅂ
- 안드로이드
- 오픽공부법
- 메모이제이션
- 오픽점수잘받는방법
- topdown
- 오픽가격
- 다이나믹프로그래밍
- 주석
- XML
- dynamicProgramming
- 피보나치수열
- 오픽노잼
- stack 스택
- 이진탐색 #나무 자르기
- 디피
- 이진탐색
- 영어회화
- 오픽노잼공부방법
- fibo
- 탑다운
- opic
- XML주석
- 영어말하기
- dp
RUBY
디자인패턴 본문
디자인패턴은 프로그래밍 과정에서 코드의 구조들을 일정한 형태로 만드는 것입니다.
*GoF(Gang of Four) 패턴 : 대표적인 디자인 패턴
*디자인 패턴을 왜쓸까요?
디자인 패턴을 사용하면 개발자들간에 소통이 쉬워지고, 코드의 재사용이 용이하며, 코드 구조를 파악하기 변할 것입니다.
* 디자인패턴은 3종류로 분류할 수 있습니다.
1. 생성패턴은 5가지 (A B F P S)
2. 구조패턴은 3가지 ( A B C D F F P )
3. 행위패턴은 11가지 ( C C I I M M O S S T V )
1. 생성패턴(A B F P S)
1) Abstract Facotry 추상팩토리
: 동일한 주제의 다른 팩토리를 묶어줍니다
2) Builder
: 복합객체의 생성과 표현방법을 분리할 수 있도록 만들어줍니다
3) Factory Method팩토리
: 객체를 생성하는 인터페이스를 정의하지만, 인터페이스를 만들 클래스의 결정을 서브클래스가 합니다
- 생성할 객체의 클래스를 국한하지 않고 객체 생성
4) Prototype
: 기존의 객체를 복사해서 객체를 생성합니다
5) Singleton
: 하나의 클래스에 하나의 객체만 있도록 만듭니다.
2. 구조패턴 ( A B C D F F P )
1) Adapter
: 인터페이스 호환을 위해서, 다른 인터페이스로 변환해준다
2) Bridge
: 추상화와 구현을 분리하여 독립적으로 변형할 수 있게 해준다
3) Composite
: 여러개의 객체를 묶어서 하나의 객체로 이용할 수 있게 해준다
- 복합객체와 단일객체를 동일하게 취급한다.
4) Decorator
: 객체의 결합을 통해 동적으로 유연하게 확장해준다
- 유연한 확장
- 상속대신 사용 가능
5) Facade 퍼사드
: 서브시스템에 있는 인터페이스들에 대해서 하나의 통합된 인터페이스 제공
6) Flyweight 플라이급
: 작은크기의 객체들이 여러개 있을 때, 객체 생성과 조작 비용을 절감
- 여러개의 가상 인스턴스를 제공해서 메모리를 절감
7) Proxy 프록시
: 다른 객체로의 접근을 통제하기 위해서 객체에 대한 대리자를 만들어 둔다
- 특정객체로의 접근을 제어하기 위한 것
- 정보은닉
3. 행위패턴 ( C C I I M M O S S T V )
1) Chain of Responsibility 책임 연쇄
: 한 요청을 두 개이상의 객체에서 처리한다
2) Command
: 요청을 객체로 캡슐화
3) Interpreter
: 문법자체를 캡슐화
4) Iterator
: 내부구조를 노출하지 않고, 복합 객체의 원소를 순차적으로 접근할 수 있게 해준다
5) Mediator
: 객체간의 상호작용을 캡슐화한다
6) Memento
: undo와 같이 객체를 이전상태로 복구시켜야 하는 경우
7) Observer
: 객체의 상태변화에 따라 다른 객체의 상태도 연동되어 바뀐다
8) State
: 객체의 상태에 따라 행위 내용을 변경한다
9) Strategy
: 행위 객체를 캡슐화해서 동적으로 행위를 자유롭게 변환하게 해준다
10) Template Method
: 상위클래스의 구조를 바꾸지 않으면서 구체적 내용은 서브 클래스로 수행한다
11) Visitor
: 클래스에서 처리기능을 별도의 visitor로 만들어두고 해당 클래스의 메소드가 돌아다니면서 특정작업을 수행하도록 만들더준다
'STUDY > CS' 카테고리의 다른 글
[데이터베이스] SQLD 단답형 답안 모음 (0) | 2020.11.10 |
---|