C#/GoF 디자인패턴

[GoF]5.단일체 패턴(Singleton Pattern)

공부를하자 2023. 9. 19. 23:52

1.정의

-특정 형식의 개체가 유일함을 보장하는 패턴.

- 일반적으로 데이터들을 관리하고 운용하는 개체를 하나만 두어 관리의 집중화를 통해 유지 보수 비용을 줄이고 높은 신뢰성을 부여할 수 있다.

2.시나리오

-가족들은 여행하면서 사진을 찍었다.

-아들은 글자가 중국어로 설정 되어 있어 글자를 한국어 설정으로 바꾸었다.

-아버지는 아들에게 카메라가 정보를 어떻게 컨트롤하는지 알려준다.

 (장치 정보를 컨트롤하는 장치는 하나만 존재한다는 것을 알려준다.)

3.다이어 그램

-클래스 구성으로 카메라(단일체), 디스플레이(), 메모리,내부 개체(단일체)로 구성한다.

-디스플레이() 사용자에게 시각적인 상호작용기능을 제공한다.

 =>저장된 사진을 보거나 내부 설정보는 기능.

-메모리카드는 사진을 저장한다.

-내부객체 단일체로 작성하여 디스플레이(),메모리,카메라와 상호작용하여 정보를 관리한다.

 =>디스플레이에와 메모리가 직접 접근하지 않고 내부 객체를 통해 관리하여 신뢰성을 높인다.

-전체적인 시스템이라 있는 카메라로 단일체로 구현한다.

4.구현

1)메모리카드 클래스

 -사진을 저장 반환 기능 정의

 2)내부 객체 클래스

  -단일체 패턴을 가지고 그외 기능 구현

  -단일체 구현 메서드

-그외 기능

3)디스플레이

-인터페이스로 기능을 약속하도록 lView 인터페이스 구현 파생클래스 구현.

-lView 인터페이스

-PictureDisplay 클래스

 

-infoDisplay 클래스

4)카메라

-단일체 부분

-그외 기능 구현

5)테스트