반응형

프로그래밍 기술 604

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

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

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

[S/W 접근성] 윈도우 옵저버 실습

윈도우 옵저버 실습 이번에는 컴퓨터 시스템에 윈도우가 열고 닫는 것을 관찰하는 윈도우 옵저버를 만들어 봅시다. [그림] 윈도우 옵저버 실행 화면 Form1에는 ListBox 컨트롤(Name: lbox_event)을 추가하였고 Dock속성을 Fill로 주었습니다. 윈도우 닫힘 자동화 이벤트에서는 닫힌 윈도우의 자동화 요소를 전달하지 않습니다. 이를 처리하기 위해 자동화 요소를 래핑한 클래스를 만들어서 내부에서 이를 처리할게요. public class EAE { 윈도우 닫힘 이벤트를 멤버로 추가합니다. public event AutomationEventHandler OnClose; 자동화 요소 이름 가져오기 속성을 제공합시다. public string Name { get; private set; } 생성자에..

[S/W 접근성] ValuePattern, WindowPattern

ValuePattern Value 패턴은 컨트롤 내에 내장 데이터를 갖는 컨트롤에서 지원하는 패턴입니다. System.Object System.Windows.Automation.BasePattern System.Windows.Automation.ValuePattern 네임스페이스: System.Windows.Automation 어셈블리: UIAutomationClient(UIAutomationClient.dll) ValuePattern의 Current 및 Cached 속성으로 ValuePatternInformation 구조체를 접근할 수 있습니다. 그리고 ValuePatternInformation 구조체에는 읽기 전용인지 확인하거나 값을 가져오기 할 수 있는 속성을 제공합니다. 속성명 설명 CanMaxi..

[S/W 접근성] TogglePattern, TransformPattern

TogglePattern TogglePattern은 변할 수 있는 상태의 집합에서 순환 형태로 상태를 설정하는 컨트롤에서 지원하는 패턴입니다. System.Object System.Windows.Automation.BasePattern System.Windows.Automation.TogglePattern 네임스페이스: System.Windows.Automation 어셈블리: UIAutomationClient(UIAutomationClient.dll) TogglePttern의 Current 및 Cached 속성으로 TogglePatternInformation 구조체를 접근할 수 있습니다. 그리고 TogglePatternInformation 구조체에는 Toggle 상태를 가져오기 할 수 있는 속성을 제공합..

[S/W 접근성] TextPattern

TextPattern TextPattern은 텍스트 박스처럼 내부에 텍스트를 갖을 수 있는 컨트롤의 패턴입니다. TextPattern 클래스에서는 텍스트 범위와 선택 영역 지원 형식을 가져오는 속성을 제공합니다.public TextPatternRange DocumentRange { get; };public SupportedTextSelection SupportedTextSelection { get; }; TextPatternRange 클래스는 텍스트의 범위를 나타내는 형식입니다. TextPatternRange 클래스에서는 다양한 메서드를 제공합니다.public void AddToSelection();public bool Compare( TextPatternRange range);public int Com..

반응형