1.정의
-서로 비슷한 기능을 하지만 사용 방법이 다른 경우 같은 인터페이스를 갖게 변환시키는 패턴.
-사용자에게 익숙한 인터페이스 형태로 포장하여 제공한다는 의미에서 래퍼(Wrapper)라고도 부른다.
2.시나리오
-EH 카메라 회사는 새로운 영상 처리 모듈을 개발했다.
-기존의 카메라의 업그레이드를 통해 그 기능을 제공하고자 하지만 예전 모듈과 기능은
비슷히자만 인터페이스가 달랐다.
- 그래서 기존 모듈과 인터페이스가 같은 래퍼를 개발하여 적용할 수 있도록 했다.
3.다이어 그램
-PlmageProcessor클래스는 기존의 카메라 모듈를 구현한 것으로 피사체 설정, 사람에 대한 영상처리 기능.사람 위치를 찾는 기능,이미지를 처리하는 기능 등을 내포하고 있다.
-AImageProcessor클래스는 새로운 모듈로 동물 영상 처리기능을 내포하지만 정의된 인터페이스가 다르기에 바로 적용할 수 없다.
-WrapAImaegProcessor 클래스는 AImageProcessing 래퍼 역할을 하여 기존 형식에 적용할 수 있는 적응자 즉 어뎁터 역할을 수행한다.
- IImageProcessing 클래스는 확장성을 높이기 위한 기존 모듈 클래스와 래퍼의 인터페이스로
ImageProcessing 메서드를 약속한다.
- Camer클래스는 모듈 부분과 사진을 찍는 메서드,모듈 교체 메서드를 구현.
4.구현
1)IImageProcessing 인터페이스
-WrapAImaegProcessor 와 PlmageProcessor클래스의 인터페이스로 사진 생성에 관한 속성과 메서드를 약속한다.
2)PlmageProcessor클래스
-사진에 생성에 관한 속성과 사람 이미지를 보정하는 기능을 구현한다.
3)AImageProcessor클래스
-사진에 생성에 관한 속성(PlmageProcessor클래스과 다른 속성)과 동물 이미지를 보정하는 기능을 구현한다.
4)WrapAImaegProcessor 클래스
-AImageProcessor클래스의 속성을 IImageProcessing 에 맞게 래핑하는 클래스.
5)Camer클래스
- 모듈 부분과 사진을 찍는 메서드.모듈 교체 메서드을 가진다.
7)테스트
'C# > GoF 디자인패턴' 카테고리의 다른 글
[GoF]8.복합체 패턴(Composite Pattern) (0) | 2023.10.15 |
---|---|
[GoF]7.가교 패턴(Bridge Pattern) (0) | 2023.10.08 |
[GoF]5.단일체 패턴(Singleton Pattern) (0) | 2023.09.19 |
[GoF]4.원형 패턴(ProtoType Pattern) (0) | 2023.09.16 |
[GoF]3.팩토리 메서드 패턴(Factory Method Pattern) (0) | 2023.09.14 |