본문 바로가기

Language/Design Pattern

[Design Pattern: 구조] 11. Flyweight

목적

  • Flyweight 는 동일한 것을 공유해서 객체 생성을 줄여 가볍게 만드는 것

클래스 별로 factory를 씁니다. 그리고 그 factory에서는 자신이 찍어내는 객체들을 관리합니다. 이미 가지고 있는 객체에 대한 요청이 들어왔을 때는 관리하고 있던 객체를 던져주고, 가지고 있지 않은 것을 요청하면 새로 객체를 만들어 관리 리스트에 추가시키고 던져줍니다.


**FactoryMethod와 굉장히 유사하다

-키(이름이 되겠지요)를 통해 객체를 생성하는 부분에서는 거의 동일하다고 할 수 있다. Factory에서 이름을 받아 객체를 생성하니깐요. 하지만 동일한 키가 들어왔을때 동일한 갱체를 넘겨주느냐 새로운 객체를 주느냐에 대한 차이만 있네요

예제



---------------- 테스트 결과 -------------
false
true