1.정의
-플라이급 패턴은 개체의 멤버 필드 중에 각 개체가 반드시 갖고 있어야 할 멤버와 여러 개체가 공유해서 사용할 수 있는 멤버로 분리하고 공유해서 사용할 수 있는 멤버가 가질 수 있는 상태의 종류가 개체의 수보다 상대적으로 적다면 메모리 효율을 높일 수 있는 패턴.
- 공유해서 사용할 수 있는 상태들을 공유 풀에 형성하고 각 개체는 특정 상태를 참조한다.
2.시나리오
-아들은 사진을 찍고 편집하는 것을 즐기는 와중에 영상처리 관련 프로그램을 만드는 것에
관심을 가지게 되었다.
-사진을 찍을 때 어떤 렌즈,바디,조명을 사용했는지에 따라 사진을 분류하는 프로그램을 만들려고 한다.
-그러는 와중에 사진이 개수가 많아짐에 따라 너무 많은 메모리를 차지해서 문제 생겼다.
3.다이어그램
-PictureFile 클래스는 사진 파일 클래스로 사진 찍을 때 Body, 렌즈, 조명의 속성을 갖는다.
-Meta 클래스는 사진들의 정보를 가진다.
-MetaPool 클래스는 Meta 객체들을 관리하는 객체를 만들고 요청에 따라 맞는 Meta객체의 정보를 제공하낟.
4.구현
1)Meta 클래스
2)MetaPool 클래스
3)PictureFile 클래스
4)테스트
'C# > GoF 디자인패턴' 카테고리의 다른 글
[GoF]13.가상 프록시 패턴(Proxy Pattern) (0) | 2023.11.01 |
---|---|
[GoF]12.원격 프록시 패턴(Proxy Pattern) (0) | 2023.10.25 |
[GoF]10.퍼사드 패턴(Facade Pattern) (0) | 2023.10.18 |
[GoF]9.장식자 패턴(Decorator Pattern) (0) | 2023.10.17 |
[GoF]8.복합체 패턴(Composite Pattern) (0) | 2023.10.15 |