반응형

프로그래밍 기술/Escort GoF의 디자인 패턴 C# 103

[C#] 적응자 패턴(Adapter Pattern) - 개요, 시나리오

6. 적응자 패턴(Adapter Pattern) 6.1 개요 적응자 패턴은 서로 비슷한 기능을 하지만 사용 방법이 다른 경우 같은 인터페이스를 갖게 변환시키는 패턴입니다. 변환시키기 전에는 서로 다른 방법으로 사용해야 했던 작업들을 일관된 인터페이스를 사용할 수 있어 사용이 쉬워집니다. 적응자 패턴은 사용자에게 익숙한 인터페이스 형태로 포장하여 제공한다는 의미에서 래퍼(Wrapper)라고도 부릅니다. 6. 2 시나리오 어느 날 강의를 하고 있는데 이 매핑 씨에게 전화가 왔습니다. "안녕하세요. 혁재 아버지!" "네, 잘 지내시죠. 그런데 어떤 일로 저에게…" "저희가 이번에 새로운 모듈을 개발했거든요. 그런데 개발하는 과정에서 기존 모듈과 사용 방법이 다르게 만들게 되었어요. 개발을 완료해서 보니 모듈이..

[C#] 구조 패턴 개요(적응자 패턴, 가교 패턴, 복합체 패턴, 장식자 패턴, 퍼샤드 패턴, 플라이급 패턴, 프락시 패턴)

2부 구조 패턴들 6. 적응자 패턴 (Adapter Pattern) 2016/04/26 - [프로그래밍 기술/Escort GoF의 디자인 패턴 C#] - [C#] 적응자 패턴(Adapter Pattern) - 개요, 시나리오 클라이언트가 사용하는 인터페이스에 맞게 호환성 없는 클래스를 래핑하여 호환성있게 제공하여 사용자 편의성과 유연성을 높일 수 있다. 7. 가교 패턴 (Bridge Pattern) 2016/04/26 - [프로그래밍 기술/Escort GoF의 디자인 패턴 C#] - [C#] 가교 패턴(Bridge Pattern) - 개요, 시나리오 사용해야 할 구체적 기능과 관계를 느슨하게 하기 위해 추상적 개념 클래스를 정의하고 이를 통해 구체적 기능을 사용합니다. 이를 통해 유연성이 높아집니다. 8..

[C#] 단일체 패턴(Singleton Pattern) - 구현

5. 단일체 패턴(Singleton Pattern) 5. 4 구현 이제 단일체 패턴에 대한 예제 프로그램을 작성해 봅시다. 구현 순서는 메모리 카드, 내부 개체, 디스플레이 장치, 카메라 순으로 하겠습니다. 5.4.1 메모리 카드 메모리 카드에는 사진을 보관하는 메서드가 필요할 것입니다. 그리고 전체 사진의 개수를 확인하기 위한 속성과 특정 번호에 해당하는 사진을 얻어오는 인덱서를 제공하려고 합니다. ▶MemoryCard.cs namespace Singleton { class InnerObject //단일체 클래스 { MemoryCard memorycard =null; public int Now { get; private set; } public static InnerObject Singleton //단..

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

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

[C#] 단일체 패턴(Singleton Pattern) - 개요, 시나리오

5. 단일체 패턴(Singleton Pattern) 5.1 개요 단일체 패턴은 프로그램에서 특정 형식의 개체가 유일함을 보장하는 패턴을 말합니다. 일반적으로 데이터들을 관리하고 운용하는 개체를 하나만 두어 관리의 집중화를 통해 유지 보수 비용을 줄이고 높은 신뢰성을 부여할 수 있게 됩니다. 사용자와 상호작용을 하는 프로그램을 작성할 때 단일체 패턴은 유용하게 사용될 수 있습니다. 사용자와 상호 작용을 담당하는 개체는 주요 데이터를 관리하는 단일 개체에게 사용자의 명령을 전달하는 역할을 합니다. 그리고 사용자에게 보여줄 정보들도 단일 개체를 통해 얻어오게 프로그래밍을 할 수 있습니다. 이처럼 프로그래밍하면 사용자와 상호 작용하는 부분을 목적에 따라 다양한 형태의 뷰를 제작할 수 있습니다. 또한, 필요에 따..

[C#] 4. 원형 패턴(Prototype Pattern) - 구현

4. 원형 패턴(Prototype Pattern) 4. 4 구현 이제 원형 패턴에 대한 예제 프로그램을 구현해 봅시다. 구현 순서는 줌 렌즈, 줌 렌즈 생산 라인, 렌즈 공장과 테스트 코드 순서로 구현할께요. 4.4.1 줌 렌즈 여기에서는 원형 패턴을 사용할 것이므로 다양한 줌 렌즈를 일반화 관계를 사용하지 않고 하나의 ZoomLens 클래스에서 속성만 다르게 주고 자신을 복사하는 메서드를 제공하기로 할게요. 이에 줌 렌즈의 생성자에서는 줌 레벨의 최소값과 최대값, 초점 거리의 최소값과 최대값을 인자로 전달받아 생성하도록 할게요. 원형 패턴을 사용하지 않고 일반화 관계를 사용한다면 많으 수의 파생 클래스가 필요할 것입니다. C#에서는 이와 같이 자신을 복제 가능한 형식들을 위해 IConeable 인터페이..

[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#] 4. 원형 패턴(Prototype Pattern) - 개요, 시나리오

4. 원형 패턴(Prototype Pattern) 4.1 개요 원형 패턴은 미리 만들어진 개체를 복사하여 개체를 생성하는 패턴을 말합니다. 그리고 이때 미리 만들어진 개체를 원형 개체라 부릅니다. 일반화 관계로 표현할 때 파생 클래스의 개수가 과도히 많아지고 각 클래스의 메서드에서 수행하는 알고리즘에 차이가 없고 생성 시에 개체의 속성값만 다르다면 원형 패턴을 사용하는 것이 효과적입니다. 4. 2 시나리오 다음 주에는 거제도와 통영으로 2박 3일 여행을 가기로 하였습니다. 이번 기회에 괜찮은 줌 렌즈를 하나 구매하려고 EHLand 쇼핑몰을 검색해 보았습니다. EHLand 쇼핑몰에는 다양한 형태의 줌 렌즈들이 있는데 이들 중에 무엇을 사는 것이 좋은지 생각하다 보니 어떠한 원리로 만들어져 있는지 궁금해 졌..

[C#] 3. 팩토리 메서드 패턴(Factory Method Pattern) - 구현

3. 팩토리 메서드 패턴(Factory Method Pattern) [그림] 팩토리 메서드 패턴(Factory Method Pattern) 예제 클래스 다이어그램 3. 4 구현 팩토리 메서드 패턴 예제 프로그램은 EHApp, IView, MyView, MyApp, 테스트 코드 순으로 구현하겠습니다. 3.4.1 EHApp EHApp에는 뷰 개체를 생성하는 메서드를 약속합니다. 그리고 초기화, Run, 해제순으로 수행하는 뼈대를 제공하며 초기화에서는 뷰 개체를 생성하는 메서드를 호출하여 뷰 개체를 설정할게요. ▶EHApp.cs namespace FactoryMethod { interface IView { void Show();//보여주기 기능에 대한 메서드 약속 } } ▶MyView.cs using Syst..

[C#] 3. 팩토리 메서드 패턴(Factory Method Pattern) - 설계(Design)

3. 팩토리 메서드 패턴(Factory Method Pattern) 3. 3 디자인 팩토리 메서드 패턴에 대한 예제 프로그램을 디자인해 봅시다. 예제 프로그램의 시나리오에는 응용 프로그램과 뷰로 구성할게요. 응용 프로그램은 초기화에서 메인 뷰 개체를 생성하고 응용에 필요한 초기 작업을 수행합니다. 그리고 Run에서 메인 뷰가 활성화되어 사용자와 상호 작용을 수행합니다. 해제에서는 응용에서 사용한 자원을 해제합니다. 이와 같은 기능들에 대한 필수적인 기능을 수행하게 구현하고 메인 뷰 개체를 생성하는 메서드를 약속한 추상 클래스를 EHApp라고 정할게요. 그리고 활성화 가능한 기능을 약속한 인터페이스 IView를 정의할게요. 이처럼 기본 뼈대를 정의해 놓으면 실제 응용을 제작할 때에는 목적에 맞게 상호 작용..

반응형