반응형
11. 플라이급 패턴(Flyweight Pattern)
프로그램에서 개체가 많아지면 메모리가 많이 차지하게 됩니다. 이럴 때 메모리 효율을 높일 필요성이 있다면 무엇을 해야 할까요? 플라이급 패턴은 이러한 문제를 해결하기 위한 하나의 방법입니다. 플라이급 패턴은 개체의 멤버 필드 중에 각 개체가 반드시 갖고 있어야 할 멤버와 여러 개체가 공유해서 사용할 수 있는 멤버로 분리하는 작업에서부터 출발합니다. 공유해서 사용할 수 있는 멤버가 가질 수 있는 상태의 종류가 개체의 수보다 상대적으로 적다면 플라이급 패턴을 사용하여 메모리 효율을 높일 수 있습니다.
플라이급 패턴에서는 공유해서 사용할 수 있는 상태들을 공유 풀에 형성합니다. 그리고 각 개체는 특정 상태를 참조합니다. 만약, 개체의 수가 상태의 수보다 상대적으로 많다고 한다면 개체마다 상태를 갖는 것보다 공유 풀에 있는 상태를 참조하는 것이 메모리 효율이 높겠죠.
2016/04/26 - [프로그래밍 기술/Escort GoF의 디자인 패턴 C#] - [C#] 플라이급 패턴(Flyweight Pattern) - 개요, 시나리오
2016/04/26 - [프로그래밍 기술/Escort GoF의 디자인 패턴 C#] - [C#] 플라이급(Flyweight Pattern) - 설계(Design)
2016/04/26 - [프로그래밍 기술/Escort GoF의 디자인 패턴 C#] - [C#] 플라이급 패턴(Flyweight Pattern) - 구현
반응형
'프로그래밍 기술 > Escort GoF의 디자인 패턴 C#' 카테고리의 다른 글
[소프트웨어 설계 패턴 C#] 16. 명령 패턴 (Command Pattern) (0) | 2016.04.17 |
---|---|
[소프트웨어 설계 패턴 C#] 책임 연쇄 패턴(Chain of Responsibility Pattern) (0) | 2016.04.17 |
[소프트웨어 설계 패턴 C#] 14. 프락시 패턴 (Proxy Pattern) - 보호용 프락시 (0) | 2016.04.17 |
[소프트웨어 설계 패턴 C#] 13. 프락시 패턴 (Proxy Pattern) - 가상 프락시 (0) | 2016.04.17 |
[소프트웨어 설계 패턴 C#] 12. 프락시 패턴(Proxy Pattern) - 원격지 프락시 (0) | 2016.04.17 |
[C#] 퍼사드 패턴(Facade Pattern) (0) | 2016.04.07 |
[C#] 장식자 패턴(Decorator Pattern) (0) | 2016.04.07 |
[C#] 복합체 패턴(Composite Pattern) (0) | 2016.04.07 |
[C#] 가교 패턴(Bridge Pattern) (0) | 2016.04.07 |
[C#] 적응자 패턴(Adapter Pattern) (0) | 2016.04.07 |