1.정의
-개체 생성 과정은 비슷하지만 세부적인 알고리즘에 차이가 있을 때,
생성과정과 표현 방법을 분리하여 다양한 구성의 인스턴스를 만드는 패턴.
-개체를 생성하는 과정을 약속.
2.시나리오
-어떤 가족은 매주 여행을 다닌다
-가족 구성원 중 아들은 카메라와 사진에 호기심이 많아졌다.
-아들이 카메라 공정이 궁금해다고 하여 EHCamera 회사에 방문했다.
-견학 도중 사진을 찍는 것은 눈으로 보는 원리는 비슷하다는 것을 알게된다.
-렌즈나 눈의 원리는 똑같이 빛이 사물에 부딪히는 반사되는 것이 그려지는 것이다.
-그리고 렌즈에 따라 이미지 변환 적용이 다를 수 있다(전반적인 개체생성 과정).
=> 렌즈에 따라 상을 이미지로 바꾸는 알고리즘이 다르다.
-렌즈는 인물을 찍을 때와 야간에서 때가 구별된다.(세부적인 알고리즘 부분)
=>인물을 찍을 때는 피사체를 투영하고 부드럽게 변환과정을 거치고
야간에서 찍을 때는 피사체를 투영하고 적목현상(안구의 색깔이 빨간색을 나오는 현상)을
제거하는 과정으로 방식이 차이가 난다.
이 부분들을 빌더 패턴으로 구현.
3.다이어그램
-카메라,사진,사진 빌더로 나눠 구현한다.
-카메라는 사진을 찍는 기능이 있고 피사체를 투영하고 변환과정을 사진 빌더로 구현한다.
-카메라는 사진빌더를 포함 및 사용한다.
-사진빌더를 통해 사진 객체를 생성한다.
-사진을 객체를 만드는 부분을 추상클래스 또는 인터페이스로 약속을 만들고 세부적인 부분을
파생클래스로 구현한다.
4.구현
1)사진 클래스
-기본적으로 피사체와 이미지 속성을 가지고 있다.
2)사진 빌더
-추상 클래스로 기능을 약속하고 파생클래스로 세부 기능을 정리.
-SmoothBulider(인물 사진 찍을 때)
-REPreventBulider
3)카메라 구현
-셔텨를 누르는 기능으로 사진을 객체를 만들고 사진 객체를 가진다.
5)테스트
-결과
'C# > GoF 디자인패턴' 카테고리의 다른 글
[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 |
[GoF]추상 팩토리 패턴(Abstract Factory Pattern) (0) | 2023.09.06 |
들어가기 앞서 (0) | 2023.09.04 |