헤드퍼스트 디자인패턴 7. 어뎁터 & 퍼사드 패턴스터디2024. 12. 27. 19:30
Table of Contents
어뎁터 패턴 (객체 어뎁터)
특정 클래스 인터페이스를 클라이언트에서 요구하는 다른 인터페이스로 변환한다.
인터페이스가 호환되지 않아 같이 쓸 수 없었던 클래스를 사용할 숭 ㅣㅆ게 도와준다.
적용된 객체 지향 원칙
1. 객체 구성 (composition) 사용
2. 클라이언트를 특정 구현이 아닌 인터페이스에 연결
EnumerationIterator (어뎁터 예제)
Iterator를 사용하는 클라이언트가 이전 API인 Enumeration를 사용할 수 있도록 어뎁터를 만든다. 클라이언트가 Iterator를 사용하도록 하고 싶지만 Enumeration만 제공하는 API를 사용해야 하는 경우, 아래의 어뎁터를 활용할 수 있다.
퍼사드(외관) 패턴
퍼사드 패턴은 서브시스템의 인터페이스들을 통합 인터페이스로 묶어준다. 또한, 고수준 인터페이스도 정의하여 서브시스템을 더욱 편리하게 사용할 수 있게 한다. 즉, 클라이언트와 구성 요소로 이루어진 서브 시스템을 분리하는 역할을 수행한다.
퍼사드 객체는 사용하고자 하는 서브시스템의 모든 구성 요소를 인스턴스 변수 형태로 들고 있다. (레퍼런스로)
내부 메서드에서 복잡한 일련의 처리 과정을 수행하고, 클라이언트에게 단순한 인터페이스를 제공한다.
최소 지식 원칙 (Principle of Least Knowledge)
객체 사이의 상호작용은 가능한 아주 가까운 객체와만, 정말 필요한 정도로만 하는게 좋다.
이 원칙을 잘 따르면, 여러 클래스가 얽혀 있어서 특정 부분의 수정이 다른 많은 부분으로 퍼져나가는 것을 방지할 수 잇다. 즉, 클래스 간의 의존도를 낮추고 결합도를 높히는 원칙이다.
'스터디' 카테고리의 다른 글
[헤드퍼스트 디자인패턴] 10. 상태 패턴 (0) | 2025.01.15 |
---|---|
헤드퍼스트 디자인패턴 5. 싱글턴 패턴 (0) | 2024.12.11 |
헤드퍼스트 디자인패턴 4. 팩토리 패턴 (0) | 2024.12.04 |
헤드퍼스트 디자인패턴 3. 데코레이터 패턴 (0) | 2024.10.22 |
헤드퍼스트 디자인패턴 2. 옵저버 패턴 (0) | 2024.10.09 |
@gmelon :: gmelon's greenhouse
백엔드 개발을 공부하고 있습니다.