C#/GoF 디자인패턴 24

[GoF]3.팩토리 메서드 패턴(Factory Method Pattern)

1.정의 -생성할 개체의 형태가 정형화 되어 있지 않을 떄 생성할 개체에 대한 구체적인 형태를 파생 클래스에서 정의하는 패턴. -뼈대에서 생성할 객체종류를 약속하고 개체 생성 매서드를 정의 -응용을 만들 때 생성할 객체를 구체적으로 구현. 2.시나리오 -아들은 EHCamera회사에 밤문한 이후 사진에 관심이 많아졌다. -그리고 디지털 카메라의 많은 부분이 소프트웨어 기술을 사용한다는 것을 알고 프로그래밍에서 도 관심이 많아졌다. -아들과 아버지는 프로그래밍에 대한 것들을 대화하면서 콘솔 응용의 뼈대를 만들었다. => 추상 응용 클래스에서 추상 뷰 클래스를 만든다. -응용 파생 클래스에서 초기화,런,해제화를 진행하고 뷰 개체를 생성을 약속. -초기화에서는 뷰 개체를 생성하는 메서드를 호출 -런에서는 사용자..

[GoF]2.빌더 패턴(Builder Pattern)

1.정의 -개체 생성 과정은 비슷하지만 세부적인 알고리즘에 차이가 있을 때, 생성과정과 표현 방법을 분리하여 다양한 구성의 인스턴스를 만드는 패턴. -개체를 생성하는 과정을 약속. 2.시나리오 -어떤 가족은 매주 여행을 다닌다 -가족 구성원 중 아들은 카메라와 사진에 호기심이 많아졌다. -아들이 카메라 공정이 궁금해다고 하여 EHCamera 회사에 방문했다. -견학 도중 사진을 찍는 것은 눈으로 보는 원리는 비슷하다는 것을 알게된다. -렌즈나 눈의 원리는 똑같이 빛이 사물에 부딪히는 반사되는 것이 그려지는 것이다. -그리고 렌즈에 따라 이미지 변환 적용이 다를 수 있다(전반적인 개체생성 과정). => 렌즈에 따라 상을 이미지로 바꾸는 알고리즘이 다르다. -렌즈는 인물을 찍을 때와 야간에서 때가 구별된다...

[GoF]추상 팩토리 패턴(Abstract Factory Pattern)

1.정의 -호환성이 있는 개체군을 하나의 팩토리 개체를 통해 생성하게 함으로써 사용자의 편의성을 증대시킬 수 있는 패턴. 2.시나리오 1)EH world회사에서 생산하는 카메라에는 E카메라와 H카메라가 존재 2)일상에서는 E카메라가 선호 3)여행에서는 H카메라를 선호 4) E카메라는 E렌즈와 호환되고 H카메라는 H렌즈와 호환 =>문제사항 -카메라와 호환성 있는 렌즈를 찾는데(렌즈 중 H렌즈 와 E렌즈를 구분 및 검사)비용이 발생 5)E박스와 H박스에 따라 렌즈와 카메라를 보관함으로써 해결. => 여기서 박스가 팩토리 객체가 된다. 3.다이어 그램 -Camera 클래스와 Lens 클래스에 파생되는 클래스로 Ev와 Hv가 존재 - Lens 클래스는 Take()메서드를 구현. -Camera 클래스는 PulnL..