반응형

소스 코드 353

[C#] 중재자 패턴(Mediator Pattern) - 구현

19. 중재자 패턴(Mediator Pattern) [그림] 중재자 패턴(Mediator Pattern) 클래스 다이어그램 19.4 구현 중재자 패턴에 대한 예제 프로그램을 구현하는 순서는 InnerModue 군, Mediator 군, Camera와 데모 코드순으로 하겠습니다. 19.4.1 InnerModule 군 InnerModule은 Shutter와 Iris의 기반 클래스입니다. 중재자 패턴에서 Shutter 개체와 Iris 개체는 서로에 대한 정보를 알 필요가 없게 하기 위해 중재자의 위치를 알아야 합니다. 그리고, 중재자 패턴에서는 Shutter 개체와 Iris 개체 사이에 주고 받아야 할 상호작용을 해야 하는 것을 중재자 개체에게 전달만 하면 되게 구현해야 합니다. 여기에서는 내부 모듈 개체 생..

[C#] 반복자 패턴(Iterator Pattern) - 구현

18. 반복자 패턴(Iterator Pattern) [그림] 반복자 패턴 클래스 다이어그램 18.4 구현 반복자 패턴에 대한 예제 프로그램을 구현하는 순서는 Collection, Iterator, Arr과 ArrIterator, Tracer순으로 하겠습니다. 18.4.1 IContainer IContainer에서는 일반적으로 컬렉션에 필요한 메서드에 대한 구현 약속만 하면 되겠죠. 여기에서는 보관하는 메서드와 삭제, 전체 해제, 현재 보관된 수를 얻어오는 속성에 대한 약속을 하겠습니다. IIterator.cs using System; namespace Iterator { interface IIterator { void Begin(); bool MoveNext(); Object Current { get; ..

[C#] 해석자 패턴(Interpreter Pattern) - 구현

17. 해석자 패턴(Interpreter Pattern) [그림] 해석자 패턴 클래스 다이어그램 17.4 구현 해석자 패턴에 대한 예제 프로그램을 구현하는 순서는 Picture, Expression 군, Macro와 데모 코드 순으로 하겠습니다. 17.4.1 Picture Picture에서는 단순히 사진의 이름과 색조, 명도, 채도의 값을 갖는 클래스로 구현을 하겠습니다. 시나리오를 위해 필요한 클래스이며 해석자 패턴과 관련되는 형식은 아닙니다. Expression.cs namespace Interpreter { abstract class Expression { public Expression Next{ get; set; } public Expression() { Next = null; } public ..

[C#] 명령 패턴(Command Pattern) - 구현

16. 명령 패턴(Command Pattern)[그림] 명령 패턴(Command Pattern) 클래스 다이어그램 16.4 구현 명령 패턴에 대한 예제 프로그램을 구현하는 순서는 Picture, Command 군, PictureManager, UIPart와 데모 코드 순으로 하겠습니다. 16.4.1 Picture Picture에서는 단순히 사진의 이름과 소유자 정보를 멤버로 갖는 클래스로 구현을 하겠습니다. IExecute.cs namespace Command { interface IExecute { void Execute(Picture picture); } } PictureManager.cs using System.Collections.Generic; namespace Command { class Pi..

[C#] 프락시 패턴(Proxy Pattern) 보호용 프락시 - 구현

14. 프락시 패턴(Proxy Pattern) - 보호용 프락시 [그림] 프락시 패턴(Proxy Pattern) - 보호용 프락시 클래스 다이어그램 14. 4 구현 프락시 패턴 중에 보호용 프락시에 대한 예제 프로그램을 구현하는 순서는 IView와 Picture, 보호용 프락시인 ProctectionPicture, PictureManager와 데모 코드 순으로 하겠습니다. 14.4.1 IView와Picture IView에서는 정보를 보여주는 메서드와 소유자를 얻어오는 속성에 대한 약속을 할께요. 이를 구현 약속하는Picture와 ProtectionPicture에서는 약속된 기능을 구현해야 하겠죠. Picture의 생성자 메서드에서는 사진 이름과 소유자 정보를 입력 인자로 받도록 할께요. 그리고, View..

[C#] 프락시 패턴(Proxy Pattern) 가상 프락시 - 구현

13. 프락시 패턴(Proxy Pattern) - 가상 프락시 [그림] 프락시 패턴(Proxy Pattern) - 가상 프락시 클래스 다이어그램 13. 4 구현 프락시 패턴 중에 가상 프락시에 대한 예제 프로그램을 구현하는 순서는 IConvert와 ImageConverter를 구현한 후에 가상 프락시인 VirtualConverter 순으로 하겠습니다. 13.4.1 IConvert와 ImageConverter IConvert에서는 이미지를 설정하고 얻어오는 멤버 속성 Image와 이미지를 리셋하는 ClearImage, 변환하는 ConvertImage 메서드를 약속합니다. 그리고, ImageConverter에서는 이들에 대한 구현하면 되겠죠. 다만, 가상 프락시에 대한 설명을 위해 ConvertImage 메..

[C#] 프락시 패턴(Proxy Pattern) 원격지 프락시 - 구현

12. 프락시 패턴(Proxy Pattern) - 원격지 프락시 [그림] 프락시 패턴(Proxy Pattern) 원격지 프락시 클래스 다이어그램 12. 4 구현 프락시 패턴 중에 원격지 프락시에 대한 예제 프로그램을 구현하는 순서는 서버 측을 구현한 후에 클라이언트 측을 구현할게요. 서버 측은 ITake, ICamera, ListenServer와 Stub 순으로 구현해 봅시다. 12.4.1 ITake와 Camera ITake에서는 단순히 TakeAPicture, ChangeMode, GetMode 메서드를 약속합시다. ▶ ITake.cs using System; namespace RemoteProxy { class Camera:ITake { bool mode = false; //true: 수동 모드, f..

[C#] 플라이급 패턴(Flyweight Pattern) - 구현

11. 플라이급 패턴(Flyweight Pattern) [그림] 플라이급 패턴(Flyweight Pattern) 클래스 다이어그램 11. 4 구현 플라이급 패턴의 예제 프로그램은 Meta, MetaPool, PictureFile, 데모 코드 순으로 구현합시다. 11.4.1 Meta Meta 형식에서는 카메라의 Body 종류에 대한 열거형 멤버와 렌즈 종류에 해당하는 열거형 멤버, 조명에 대한 열거형 멤버를 갖고 있게 합시다. 그리고 같은 멤버의 값을 가졌는지 비교하는 메서드와 이들 정보를 보여주는 메서드를 제공할 것입니다. ▶ Meta.cs using System.Collections.Generic; namespace Flyweight { class MetaPool // Meta 개체들을 관리하는 클래스..

[C#] 퍼사드 패턴(Facade Pattern) - 구현

10. 퍼사드 패턴(Facade Pattern) [그림] 퍼사드 패턴(Facade Pattern) 클래스 다이어그램 10. 4 구현 예제 프로그램은 Picture, Compensator, PictureManager, SmartManager, 데모 코드 순으로 설명하겠습니다. 10.4.1 Picture Picture 형식에서는 멤버 필드로 색조, 명도, 채도가 있고 멤버 속성으로 이름을 제공하겠습니다. 그리고 사진을 수정하는 메서드, 이름이 같은지를 비교하는 메서드, 정보를 보여주는 메서드를 제공할게요. ▶ Picture.cs namespace Facade { class Compensator //하위 계층 서비스 { public void Change(Picture picture, int tone, int ..

[C#] 장식자 패턴(Decorator Pattern) - 구현

9. 장식자 패턴(Decorator Pattern) [그림] 장식자 패턴(Decorator Pattern) 클래스 다이어그램 9. 4 구현 장식자 패턴의 예제 프로그램은 Picture, IChange, 보정기, 데모 순으로 구현할게요. 9.4.1 Picture Picture 클래스는 장식자 패턴에 포함되는 형식은 아닙니다. 단순히 예제 프로그램을 위해 정의한 형식으로 멤버 필드로 색조, 명도, 채도 값을 갖고 있고 이들 값을 변경하는 메서드와 보여주는 메서드를 갖도록 구현합시다. ▶ Picture.cs namespace Decorator { interface IChange { void Change(Picture picture,int tone,int brightness,int saturation); } }..

반응형