1.정의
-특정 형식의 개체가 유일함을 보장하는 패턴.
- 일반적으로 데이터들을 관리하고 운용하는 개체를 하나만 두어 관리의 집중화를 통해 유지 보수 비용을 줄이고 높은 신뢰성을 부여할 수 있다.
2.시나리오
-가족들은 여행하면서 사진을 찍었다.
-아들은 글자가 중국어로 설정 되어 있어 글자를 한국어 설정으로 바꾸었다.
-아버지는 아들에게 카메라가 정보를 어떻게 컨트롤하는지 알려준다.
(장치 및 정보를 컨트롤하는 장치는 하나만 존재한다는 것을 알려준다.)
3.다이어 그램
-클래스 구성으로 카메라(단일체), 디스플레이(뷰), 메모리,내부 개체(단일체)로 구성한다.
-디스플레이(뷰) 사용자에게 시각적인 상호작용기능을 제공한다.
=>저장된 사진을 보거나 내부 설정보는 기능.
-메모리카드는 사진을 저장한다.
-내부객체 단일체로 작성하여 디스플레이(뷰),메모리,카메라와 상호작용하여 정보를 관리한다.
=>디스플레이에와 메모리가 직접 접근하지 않고 내부 객체를 통해 관리하여 신뢰성을 높인다.
-전체적인 시스템이라 할 수 있는 카메라로 단일체로 구현한다.
4.구현
1)메모리카드 클래스
-사진을 저장 및 반환 기능 정의
2)내부 객체 클래스
-단일체 패턴을 가지고 그외 기능 구현
-단일체 구현 메서드
-그외 기능
3)디스플레이
-인터페이스로 기능을 약속하도록 lView 인터페이스 구현 및 파생클래스 구현.
-lView 인터페이스
-PictureDisplay 클래스
-infoDisplay 클래스
4)카메라
-단일체 부분
-그외 기능 구현
5)테스트
'C# > GoF 디자인패턴' 카테고리의 다른 글
[GoF]7.가교 패턴(Bridge Pattern) (0) | 2023.10.08 |
---|---|
[GoF]6.적응자 패턴(Adapter Pattern) (0) | 2023.09.23 |
[GoF]4.원형 패턴(ProtoType Pattern) (0) | 2023.09.16 |
[GoF]3.팩토리 메서드 패턴(Factory Method Pattern) (0) | 2023.09.14 |
[GoF]2.빌더 패턴(Builder Pattern) (0) | 2023.09.11 |