Design Pattern for Smalltalk – Flyweight

t_Dpsc_chapter04_Flyweight_01

[디자인 패턴]에서는 flyweight 패턴의 설명에서 공유와 지원을 키워드로 잡고있다. flyweight패턴은 그 설명 그대로 특수한 작은 목적을 가진 인스턴스를 여러 클라이언트에서 공유함으로서 필요한 리소스의 양을 줄여 효율적인 시스템을 유지하게 하는데에 그 목적이 있다.

flyweight패턴에서는 인스턴스를 관리하며 생성, 제거등을 담당하는 관리자 클래스와, 생성된 인스턴스로서 공유되는것이 목적으로 시스템에 의해 사용되는 인스턴스의 두가지 요소가 중요하다.

flyweight 패턴의 설명에서는 내내 공유를 통한 사용되어야 할 인스턴스의 개수를 줄임으로서 리소스의 절약과 시스템의 효율 향상을 얻을 수 있다고 언급하고 있다.

[디자인 패턴]은 flyweight 패턴 관련 부분에서 마지막 단락에 좋은 예를 소개한다. 확실히 화면에 여러개의 요소가 있을 때 각 요소별로 Layout을 따로 가지고 있는 것 보다는
Layout 만을 관리하는 인스턴스를 별도로 두고 요소들을 관리하는게 효율적일 것이다. 중요한 건 flyweight의 인스턴스들은 각자 한가지, 또는 단순한 수준의 정보만 모아서 관리함으로서 효율을 높이기 위한 단위로 구성되었을 때 의미가 있으며, 관리가 필요한 단순정보가 많아도 관리해야하는 최종 대상에 대한 정보의 총 분량이 그리 많지 않다면 필요없는 overhead가 생길 수 있으니 그점은 반드시 주의해야 한다.

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다