Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- 성수맛집
- 성수핫플
- 성수직장인
- 책너두
- 독서
- 주니어개발자
- 성수볼거리
- 독서일지
- 깨끗한코드
- 객체지향프로그래밍
- Java
- 클린코드
- 책읽기
- 헤드퍼스트디자인패턴
- 헤드퍼스트
- 직장인점심
- 상속
- 직장인
- 개발자
- 오브젝트
- Linux
- IntelliJ
- JavaScript
- JAVA개발자
- 디자인패턴
- DesignPattern
- docker
- 코딩
- 성수
- 객체지향
Archives
- Today
- Total
런타임노트
[헤드퍼스트 디자인패턴] 20일차. 272-283pg 본문
728x90
20일차
헤드퍼스트 디자인패턴 [4주차_화요일]
272-283pg
요약
CHAPTER 07. 적응시키기 (feat. 어댑터 패턴과 퍼사드 패턴)
- 실제와 다른 인터페이스를 가진 것처럼 보이도록 객체를 감싸면, 특정 인터페이스가 필요한 디자인을 다른 인터페이스를 구현하는 클래스에 적응시킬 수 있다.
- 객체를 감싸서 인터페이스 단순화하기
[객체지향 어댑터]
- 어떤 인터페이스를 클라이언트에서 요구하는 형태로 적응시키는 역할
- 기존 시스템 =/= 업체에서 제공한 클래스
- 기존시스템 -어댑터-업체에서 제공한 클래스
[Duck 객체가 모자라서 Turkey 객체를 대신 사용해야 함]
- TurkeyAdaptor 클래스 만들기.
- Duck turkeyAdaptor = new TurkeyAdapter(turkey);
- 칠면조 객체를 칠면조어댑터로 감싸서 오리 객체처럼 보이도록 한다.
- testDuck(turkeyAdaptor);
- 오리 대신 칠면조 넣어봄
[ 어댑터의 역할 ]
- 클라이언트 : 타깃 인터페이스에 맞게 구현되어 있다.
- 어댑터 : 타깃 인터페이스를 구현하며, 어댑티(adaptee) 인스턴스가 들어있다.
- 클라이언트 -request()→ 어댑터 -translatedRequest()→ 어댑티
- 클라이언트와 어댑티는 서로 분리되어 있어서 서로를 전혀 모른다.
[어댑터 패턴]
- 특정 클래스 인터페이스를 클라이언트에서 요구하는 다른 인터페이스로 변환합니다. 인터페이스가 호환되지 않아 같이 쓸 수 없었던 클래스를 사용할 수 있게 도와준다.
- 객체지향 원칙 반영 : 어댑티를 새로 바뀐 인터페이스로 감쌀 때는 객체 구성(composition)을 사용한다. → 어댑티의 모든 서브 클래스에 어댑터를 쓸 수 있음.
[객체 어댑터와 클래스 어댑터]
- 클래스 어댑터 패턴을 쓰려면 다중 상속이 필요한데 자바에서는 다중상속이 불가능함.
- 클래스 어댑터는 타깃과 어댑티 모두 서브클래스로 만들어서 사용하고,
- 객체 어댑터는 구성으로 어댑티에 요청을 전달한다.
발췌
💡 어댑터 패턴 : 특정 클래스 인터페이스를 클라이언트에서 요구하는 다른 인터페이스로 변환합니다. 인터페이스가 호환되지 않아 같이 쓸 수 없었던 클래스를 사용할 수 있게 도와준다.
728x90
반응형
'책책책 책을 읽읍시다‼ ver.개발 > [ 헤드퍼스트 디자인패턴 ]' 카테고리의 다른 글
| [헤드퍼스트 디자인패턴] 22일차. 294-304pg (0) | 2023.05.19 |
|---|---|
| [헤드퍼스트 디자인패턴] 21일차. 284-293pg (0) | 2023.05.18 |
| [헤드퍼스트 디자인패턴] 19일차. 257-271pg (0) | 2023.05.18 |
| [헤드퍼스트 디자인패턴] 18일차. 240-256pg (0) | 2023.05.17 |
| [헤드퍼스트 디자인패턴] 17일차. 227-239pg (0) | 2023.05.17 |