반응형

C# 267

[C#] 해석자 패턴(Interpreter Pattern) - 개요, 시나리오

17. 해석자 패턴(Interpreter Pattern) 17.1 개요 해석자 패턴은 사용자가 표현하기 쉬운 표현을 사용하게 하고 이를 해석하는 개체를 통해 약속된 알고리즘을 수행할 수 있게 해 주는 패턴입니다. SQL 쿼리문이나 Command 창에서 프로그램 실행 시 필요한 인자를 전달할 때와 같은 경우 등에서 많이 사용될 수 있는 패턴입니다. 해석자 패턴에서는 사용자가 원하는 다양한 명령을 쉽게 표현할 수 있게 구문 약속을 해야 합니다. 그리고, 해석자에서는 이와 같이 약속된 구문을 입력 인자로 전달되었을 때 이를 해석을 할 수 있어야 합니다. 사용자로부터 전달된 입력 구문은 하나의 표현으로 종결되기도 하지만 여러 개의 표현으로 해석될 수도 있습니다.가령 "2 Add 3" 과 같은 표현은 피 연산자:..

[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#] 명령 패턴(Command Pattern) - 설계(Design)

16. 명령 패턴(Command Pattern) 16. 3 디자인 명령 패턴에 대한 설명을 위한 예제 프로그램은 사진 관리자에 관한 소재를 대상으로 하겠습니다. 사용자와 상호작용을 하는 UIPart는 클라이언트 역할을 하며 사진을 추가하거나 사진의 정보를 간단히 보여달라는 명령 혹은 상세히 보여달라는 명령을 요청하는 주체입니다. PictureManager는 UIPart에서 전달된 명령에 따라 파일을 보관하고 보여주는 등의 작업을 수행합니다. 명령 패턴으로 예제 프로그램을 작성할 것이기 때문에 PictureManager에서 수행할 추상적인 행위와 구체적인 행위는 분리하였습니다. 수행할 추상작인 행위에 대한 형식 정의는 IExecute인터페이스에 명령을 수행할 수 있는 Execute 메서드에 대한 약속을 하..

[C#] 명령 패턴(Command Pattern) - 개요, 시나리오

16. 명령 패턴(Command Pattern) 16.1 개요 프로그래밍을 하다 보면 명령을 내리는 개체와 명령을 수행하는 개체를 나누는 작업은 매 번 있는 작업입니다. 그런데, 실제 요청한 작업을 수행하는 개체에서 수행에 필요한 알고리즘을 모두 포함시켰을 경우에 비슷한 형태의 여러 메서드를 구현하여야 하는 경우가 발생합니다. 경우에 따라서는 명령을 내리는 시점과 실제 명령을 수행하는 시점이 다르고 다양한 설정에 따라 구체적인 수행 알고리즘이 다른 경우도 발생합니다. 이와 같은 경우에 명령을 내리는 곳에서 일부 알고리즘을 정의하여 명령을 수행하는 개체의 메서드를 호출할 때 입력 인자로 전달하는 것이 더 효과적인 경우가 발생합니다. 이와 같은 경우에 명령 패턴은 효과적으로 사용할 수 있습니다. 명령 패턴은..

[소프트웨어 접근성 동영상 강의] 포커스 추적기, 자동화 요소 속성 출력

[소프트웨어 접근성 동영상 강의] 포커스 추적기, 자동화 요소 속성 출력 강의 내용 소프트웨어 접근성을 제공하기 위한 UIAutomation 기술을 이용하여 포커스(초점)가 바뀔 때마다 포커스를 소유한 자동화 요소의 자동화 요소 속성을 출력하는 콘솔 응용 프로그램입니다.사용 언어는 C#입니다. 이 강의에서 포커스 트래킹 방법과 자동화 요소의 속성들이 어떠한 것들이 있는지 확인할 수 있습니다. 소프트웨어 접근성, UI 자동화 기술 게시판에서 학습하기언제나 휴일 동영상 강의 보러가기 (모든 동영상은 무료입니다.)*이번에 마이크를 교체하면서 다소 잡음이 섞이네요. 다음에 잡음을 없애도록 노력할게요. * 신체적 환경적 장애에 관계없이 소프트웨어를 접근할 수 있는 기술,소프트웨어 자동화 기술입니다. 그 중 MS사..

[C#] 책임 연쇄 패턴(Chain of Responsibility Pattern) - 설계(Design)

15. 책임 연쇄 패턴(Chain of Responsibility Pattern) 15. 3 디자인 책임 연쇄 패턴에 대한 설명을 위한 예제 프로그램은 사진 보정에 관한 소재를 대상으로 하겠습니다. 사용자와 상호작용을 하는 UIPart는 클라이언트 역할을 하며 사진을 보정하는 개체에게 보정 명령을 요청하는 주체입니다. 사진을 보정하는 개체들은 UIPart에서 전달된 명령을 처리하거나 연결된 다른 사진 보정 개체에게 전달하게 할 것입니다. 이를 위해 추상 클래스로 ChangeHandler를 정의하였고 보정 명령을 받아 수행할 수 있는 ChangeRequest 메서드에 대한 약속을 멤버로 정의하였습니다. 그리고, 다른 사진 보정 개체에게 전달된 명령을 전달할 수 있게 하였습니다. 예제 프로그램에서는 사진 보..

[C#] 책임 연쇄 패턴(Chain of Responsibility Pattern) - 개요, 시나리오

15. 책임 연쇄 패턴(Chain of Responsibility Pattern) 15.1 개요 여러 형식 개체들로 구성된 프로그램을 작성하다 보면 메시지를 보내는 곳에서 이를 받아 처리해야 할 개체의 위치를 파악하기가 어려운 경우가 발생합니다. 만약, 메시지를 받아 처리해야 할 개체들을 관리하는 집합체가 있거나 계층화되어 있다면 책임 연쇄 패턴을 통해 효과적으로 메시지를 전달할 수 있습니다. 책임 연쇄 패턴에서는 메시지 송신자는 이를 받아 처리해야 할 개체가 속한 집합체에 메시지를 전달하면 집합체 내에서 수신해야 할 개체에게 메시지를 전달하여 처리를 하게 하는 것입니다. 특정 개체에게 메시지가 전달되면 해당 메시지를 자신이 처리를 할 것인지를 판단을 하게 됩니다. 만약, 자신이 처리를 해야 한다면 이에..

[C#] 행동 패턴 (책임 연쇄 패턴, 명령 패턴, 해석자 패턴, 중재자 패턴, 메멘토 패턴, 감시자 패턴, 상태 패턴, 전략 패턴, 템플릿 메서드 패턴, 방문자 패턴)

3부 행동 패턴들 15. 책임 연쇄 패턴(Chain of Responsibility Pattern)송신부에서는 수신부에 전달하면 수신부에서 메시지를 전달받은 개체는 자신과 연관되는 다른 개체들에게 이 메시지를 전달을 하는 형태로 실제 처리할 개체까지 전달합니다. 실제 윈도우즈 프로그램에서 메시지를 처리하는 내부 원리도 이와 흡사합니다. 2016/04/27 - [프로그래밍 기술/Escort GoF의 디자인 패턴 C#] - [C#] 책임 연쇄 패턴(Chain of Responsibility Pattern) - 개요, 시나리오 16. 명령 패턴 (Command Pattern) 명령을 요청하는 곳에서 수행할 알고리즘을 입력 인자로 정의하여 명령을 수행하는 곳에서는 입력 인자로 전달받은 알고리즘을 이용을 하게 합..

[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) 보호용 프락시 - 설계(Design)

14. 프락시 패턴(Proxy Pattern) - 보호용 프락시 14. 3 디자인 프락시 패턴 중에 보호용 프락시를 설명하기 위한 예제 프로그램은 사진 관리 프로그램입니다. 프로그램 내부에는 사진과 보호용 프락시인 보호용 사진이 있고 이들을 일반화 시킨 IView가 있습니다. 그리고, 이들을 사용하는 사진 관리자를 만들 것입니다. 사진과 보호용 사진은 IView 인터페이스를 구현 약속한 클래스이므로 IView 인터페이스 형식 변수를 통해 일관되게 사용할 수 있습니다. 대신 보호용 사진의 경우 사용자를 설정하거나 사용 가능한 사용자를 추가하는 메서드를 제공하여 권한이 있는 사용자만 해당 사진에 접근할 수 있게 할 것입니다. 사진 관리자는 IView 인터페이스 형식 개체를 관리할 수 있으며 사용자에 의해 일..

반응형