일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Google Cloud Platorm
- 리버스 프록시
- Kubernetes Engine
- 아마존웹서비스
- ansible
- Amazon Web Service
- Cloud Spanner
- kubernetes
- AWS 자격증
- container
- Google Cloud Platform
- Cloud Datastore
- Cloud SQL
- AWS Certificate
- Reverse Proxy
- 앤서블
- AWS Solution Architect
- VPC
- Cloud Storage
- Google Cloud Platrofm
- GKE
- Cloud Bigtable
- Compute Engine
- Solution Architect
- Solution Architect Certificate
- gcp
- AWS Database
- playbook
- Google Cloud
- AWS
- Today
- Total
sungwony
[디자인패턴] Adapter 패턴 본문
Adapter 패턴
- 이미 제공되어 있는 것을 그대로 사용할 수 없는 경우 '이미 제공되어 있는 것'과 '필요한 것' 사이의 간격을 메우는 디자인 패턴
- Wrapper 패턴으로도 불린다
|
전원의 비유 |
예제 프로그램 |
제공되고 있는 것 |
교류 100 볼트 |
Banner 클래스(showWithParen, showWithAster) |
교환장치 |
어댑터 |
PrintBanner 클래스 |
필요한 것 |
직류 12볼트 |
Print 인터페이스(printWeek, printStrong) |
상속(inheritage)을 이용한 Adapter패턴
Banner 클래스
위임(delegation)을 이용한 Adapter 패턴
Banner 클래스
등장인물 |
역할 |
Target(대상) |
지금 필요한 메소드를 결정한다. 노트북을 작동시키기 위한 직류 12볼트에 해당한다. 예제에서는 Print 인터페이스(상속의 경우)나 Pring 클래스(위임의 경우)가 이 역할을 한다. |
Client(의뢰자) |
Target 역할의 메소드를 사용해서 일을 한다. 직류 12볼트로 움직이는 노트북에 해당한다. 예제에서는 Main 클래스가 이 역할을 한다. |
Adaptee (개조되는 쪽) |
Adapt-er(개조하는 쪽)가 아니고 Adapt-ee(개조되는 쪽)이다. Adaptee는 이미 준비되어 있는 메소드를 가지고 있는 역할이다. 교류 100볼트 AC전원에 해당하며, 예제에서는 Banner 클래스가 이 역할을 담당한다. Adaptee역의 메소드가 Target 역할의 메소드와 일치하면 Adapter는 불필요하다. |
Adapter |
Adapter패턴의 주인공이다. Adaptee의 메소드를 사용해서 Target 역할을 만족시키기 위한 것이 Adapter 역할. 교류 100볼트를 직류 12볼트로 교환하는 것이 Adapter의 역할에 해당한다. 예제에서는 PrintBanner 클래스가 Adapter의 역할을 한다. 클래스에 의한 Adapter의 경우 Adapter의 역할은 '상속'을 사용한 Adaptee의 역할을 이용하지만, 인스턴스에 의한 Adapter 패턴의 경우 '위임'을 사용한 Adaptee의 역할을 이용한다. |
'development > 디자인패턴' 카테고리의 다른 글
[디자인패턴] 디자인패턴 입문 - 디자인패턴 (0) | 2018.07.18 |
---|---|
[디자인패턴]디자인 패턴 인덱스 (0) | 2018.07.17 |
[디자인패턴] Iterator 패턴 (0) | 2018.07.11 |
[디자인패턴] 디자인패턴 입문 - OOP&UML (0) | 2018.07.11 |
[디자인패턴]Template Method Pattern (0) | 2018.05.16 |