1.정의
-추상적인 개념과 구체적 구현사이에 종속성을 제거하여 목적에 맞게 다양한 구현 방법을 사용하도록 하는 패턴.
-ex) 야구하는 학생 => 야구하는 것,학생 피아노 치는 선생 => 선생, 피아노치는 것.
- 가교 패턴에서는 추상적 개념과 구체적 구현을 둘 다 기반 클래스와 파생 클래스를 제공하는 형태를 가진다.
-그리고 추상적 개념에서 구체적 구현을 하나 멤버로 가진다.
-구체적 구현을 개체화 할 수 있어서 파생 클래스가 많아지는 것을 피할 수도 있으며 단위 기능을 추가하거나 변경, 삭제 등의 유지보수 비용을 줄일 수 있게 된다.
2.시나리오
-가족은 카메라와 렌즈를 청소하였다.
-아들은 카메라와 렌즈에 써져 있는 AF,MF 등 알파벳이 어떤 의미가 있는지 궁금했다.
-아버지는 AF,MF는 자동 초점기능이 있는 지에 대한 여부이고 VR,PC는 카메라 모듈에 있는 기능 중 손떨림 방지와 원근감 조절이란 것을 알려준다.
-아들은 EH회사에 견학을 렌즈가 가지고 있을 수 있는 경우 수가 설비에 비해 많다는
생각을 하게 된다.
-아버지는 AF MF 생산 설비가 있고 VR,PC등의 모듈을 만드는 곳이 따로 있다고 말해준다.
3.다이어그램
-가교 패턴에서의 추상화 부분은 렌즈, AF 렌즈, MF 렌즈이고 구체적 구현 부분은 모듈과 VR 모듈, PC 모듈이다.
-AF렌즈,MF렌즈와 VR모듈PC모듈의 실질적 기능 구현부를 나눠 구현한다.
-렌즈는 모듈을 부분을 장착 할 수 있는 기능을 제공한다.
4.구현
1)IImageProcessing 인터페이스
-모듈 부분의 기능을 약속하는 인터페이스
2)VRModule 클래스
3)PCModule 클래스
4)Lens 추상클래스
-lens의 기본이 되는 추상클래스와 기본 속성을 정의
5)MFLens클래스
6)AFLens클래스
7)Camera 클래스
8)테스트
'C# > GoF 디자인패턴' 카테고리의 다른 글
[GoF]9.장식자 패턴(Decorator Pattern) (0) | 2023.10.17 |
---|---|
[GoF]8.복합체 패턴(Composite Pattern) (0) | 2023.10.15 |
[GoF]6.적응자 패턴(Adapter Pattern) (0) | 2023.09.23 |
[GoF]5.단일체 패턴(Singleton Pattern) (0) | 2023.09.19 |
[GoF]4.원형 패턴(ProtoType Pattern) (0) | 2023.09.16 |