반응형

설계(Design) 16

[C#] 복합체 패턴(Composite Pattern) - 설계(Design)

8. 복합체 패턴(Composite Pattern) 8. 3 디자인 복합체 패턴에 대한 설명을 위해 트리와 경로, 카테고리 형식을 예로 들겠습니다. 경로는 단일 개체이며 카테고리는 복합 개체입니다. 카테고리에는 경로 개체와 카테고리 개체를 자식 요소로 포함할 수 있습니다. 복합체 패턴을 이용하면 경로(단일 개체)나 카테고리(복합 개체)를 같은 방법으로 사용할 수 있게 됩니다. 이를 위해 경로와 카테고리를 일반화하여 기반 형식으로 트리를 만들 것입니다. 같은 방식으로 사용할 수 있게 하려고 경로 개체에서 할 수 있는 기능과 카테고리 개체로 할 수 있는 모든 기능을 트리에서 제공할 것입니다. 그리고 경로와 카테고리에서는 자신들이 제공해야 할 기능에 대해 재정의를 해 줍니다. 그리고 카테고리 개체는 복합 개체..

[C#} 가교 패턴(Bridge Pattern) - 설계(Design)

7. 가교 패턴(Bridge Pattern) 7. 3 디자인 가교 패턴에 대해 설명하기 위한 예제 프로그램은 카메라와 렌즈, 모듈로 구성할게요. 그리고 렌즈는 AF 렌즈와 MF 렌즈, 모듈은 VR 모듈과 PC 모듈을 정의할게요. 카메라는 내부에 렌즈를 가지고 있는 클래스로 가교 패턴과는 연관성이 없습니다. 가교 패턴에서의 추상화 부분은 렌즈, AF 렌즈, MF 렌즈입니다. 그리고 구체적 구현 부분은 모듈과 VR 모듈, PC 모듈이 있습니다. 가교 패턴을 적용하지 않으면 기반 클래스 렌즈에서 파생한 AF 렌즈, MF 렌즈가 있고 AF 렌즈에서 파생한 AF VR 렌즈, AF PC렌즈, AF VR PC렌즈가 있게 됩니다. 물론, MF 렌즈에서 파생된 MF VR 렌즈와 MF PC렌즈, MF VR PC렌즈가 존재..

[C#] 적응자 패턴(Adapter Pattern) - 설계(Design)

6. 적응자 패턴(Adapter Pattern) 6. 3 디자인 적응자 패턴에 대해 설명을 하기 위해 두 개의 예제 프로그램을 이용하겠습니다. 첫 번째는 적응자 패턴을 사용하기 전에 사용했던 프로그램이고 두 번째는 적응자 패턴을 사용한 예제 프로그램입니다. 적응자 패턴을 사용하기 전 프로그램은 카메라와 사람에 대한 영상 처리를 하는 모듈로 구성할 것입니다. 적응자 패턴을 사용하는 프로그램에서는 카메라와 사람에 대한 영상 처리를 하는 형식 외에 동물에 대한 영상 처리를 하는 형식을 추가할 것입니다. 6.3.1 첫 번째 프로그램(적응자 패턴을 적용하기 전에 사용하던 프로그램) [그림 6] 적응자 패턴 사용하기 전 프로그램의 클래스 다이어그램 첫 번째 프로그램에서는 카메라와 사람에 대해 영상 처리를 하는 개체..

[C#] 단일체 패턴(Singleton Pattern) - 설계(Design)

5. 단일체 패턴(Singleton Pattern) 5. 3 디자인 단일체 패턴을 설명하기 위한 예제 프로그램에 대해 얘기할게요. 여기에서는 카메라(단일체), 디스플레이 장치, 메모리 장치와 내부 개체(단일체)로 구성하려고 합니다. 카메라 개체를 통해 사진을 찍으면 단일체인 내부 개체를 통해 메모리 장치에 저장할 수 있게 할게요. 카메라는 디스플레이 장치에게 메모리 장치에 대한 정보 보기 모드와 사진 보기 모드를 지원합시다. 내부 개체에서는 찍힌 사진들을 메모리 장치에 보관하고 이들에 대한 정보들을 관리하는 역할을 할 것입니다. 그리고 카메라와 디스플레이 장치들은 내부 장치를 통해 메모리 카드에 사진을 보관하거나 보관된 사진 및 메모리 장치에 대한 정보를 얻어올 수 있습니다. 카메라는 예제 프로그램의 단..

[C#]4. 원형 패턴(Prototype Pattern) - 설계(Design)

4. 원형 패턴(Prototype Pattern) 4. 3 디자인 여기에서는 줌 렌즈와 줌 렌즈 생산 설비 형식으로 구성된 예를 보여드릴게요. 줌 렌즈에는 자신을 복제할 수 있는 메소드를 제공하고 있어야겠지요. 클래스 이름은 ZoomLens라 정합시다. 줌 렌즈 생산 설비는 모형 줌 렌즈를 하나 갖게 할 것입니다. 그리고 제품 생산요청이 들어오면 모형을 복제한 줌 렌즈를 반환합니다. 줌 렌즈 생산 설비에 대한 클래스 이름은 ProLine이라 하겠습니다. [그림 4] 원형 패턴 설계 예제 클래스 다이어그램 2016/04/25 - [프로그래밍 기술/Escort GoF의 디자인 패턴 C#] - [C#] 4. 원형 패턴(Prototype Pattern) - 개요, 시나리오 2016/04/25 - [프로그래밍 기..

[C#] 1. 추상 팩토리 패턴 (Abstract Factory Pattern) - 설계(Design)

1. 추상 팩토리 패턴 (Abstract Factory Pattern) 1. 3 디자인 여기에서는 렌즈의 종류는 기종별로 하나의 렌즈만 제공하는 수준으로 디자인하려고 합니다. 여기에서 보여 드리고자 하는 프로그램에는 카메라, 렌즈, 특정 기종의 카메라와 렌즈를 생성하는 역할을 하는 팩토리, 테스터로 분류할 것입니다. 카메라와 렌즈, 팩토리는 Everyday에 관련된 것과 Holiday에 관련된 구체화 클래스와 일반화된 추상 클래스 구조로 만들어야겠지요. 여기에서 Everyday에 관련된 것들은 접두사 Ev를 사용하고 Holiday에 관련된 것들은 접두사 Ho를 사용할 것입니다. 카메라에는 렌즈를 장착 및 탈착하는 기능과 사진을 찍는 기능에 대해 약속합시다. 렌즈에는 상을 얻어오는 기능을 약속하겠습니다. ..

반응형