프로그래밍 기술/Escort GoF의 디자인 패턴 C#

[소프트웨어 설계 패턴 C#] 11. 플라이급 패턴(Flyweight Pattern)

언제나휴일 2016. 4. 17. 13:08
반응형

11. 플라이급 패턴(Flyweight Pattern)

  

 프로그램에서 개체가 많아지면 메모리가 많이 차지하게 됩니다. 이럴 때 메모리 효율을 높일 필요성이 있다면 무엇을 해야 할까요? 플라이급 패턴은 이러한 문제를 해결하기 위한 하나의 방법입니다. 플라이급 패턴은 개체의 멤버 필드 중에 각 개체가 반드시 갖고 있어야 할 멤버와 여러 개체가 공유해서 사용할 수 있는 멤버로 분리하는 작업에서부터 출발합니다. 공유해서 사용할 수 있는 멤버가 가질 수 있는 상태의 종류가 개체의 수보다 상대적으로 적다면 플라이급 패턴을 사용하여 메모리 효율을 높일 수 있습니다.

 

 플라이급 패턴에서는 공유해서 사용할 수 있는 상태들을 공유 풀에 형성합니다. 그리고 각 개체는 특정 상태를 참조합니다. 만약, 개체의 수가 상태의 수보다 상대적으로 많다고 한다면 개체마다 상태를 갖는 것보다 공유 풀에 있는 상태를 참조하는 것이 메모리 효율이 높겠죠.

플라이급 패턴(Flyweight Pattern)


Flyweight.zip


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) - 구현


반응형