2. 빌더 패턴(Builder Pattern) 구현

2. 4 구현

이제 빌더 패턴에 대한 예제 프로그램을 구현해 봅시다. 구현 순서는 사진, 사진 빌더, 카메라 순으로 하겠습니다.

 

2.4.1 사진

사진은 피사체와 이에 대한 이미지를 갖는 형식으로 정의를 할게요. 

▶Picture.cs

2.4.2 사진 빌더 

사진 빌더는 빛을 모아 피사체를 이미지로 맺히는 역할과 수정작업을 수행하는 역할을 합니다. 추상 클래스 PictureBuilder에는 이들 기능에 대한 약속을 합니다.

▶PictureBuilder.cs

SmoothBuilder에서는 약속한 기능을 구체적으로 구현해야 합니다. 상을 맺히는 기능은 피사체를 그대로 이미지로 맺히게 구현할게요. 그리고 이미지를 수정하는 기능은 날카로운 부분을 부드럽게 바꾸게 구현합시다.

▶SmoothBuilder.cs

REPreventBuilder에서도 약속한 기능을 구체적으로 구현해야 합니다. 상을 맺히는 기능은 피사체의 일부분만 이미지로 맺히게 구현할게요. 그리고 이미지를 수정하는 기능은 적목을 일반적인 눈으로 바꾸게 구현합시다. 

▶REPreventBuilder.cs

2.4.3 카메라 

카메라에는 셔터를 누르면 피사체를 사진으로 만들어주는 기능이 있어야 할 것입니다. 이러한 기능을 PressAShutter라 하고 피사체와 낮인지 밤인지를 구별할 수 있는 입력 인자로 받아서 빌더를 이용하여 상을 맺히고 수정하게 구현할게요.

▶Camera.cs

▶Program.cs

▶실행 결과