플라이웨이트 패턴
플라이웨이트 패턴이란?⌗
동일하거나 유사한 객체들 사이에 가능한 많은 데이터를 서로 공유하여 사용하도록 하여 메모리 사용량을 최소화하는 패턴
주로 중복 생성 가능성이 높은 자원이나 자원 생성 비용은 크나 사용 빈도가 낮은 경우 사용하는 패턴이다
구조⌗
Flyweight
공유 자원을 갖는 객체ConcreateFlyweight
Flyweight 구현체로 공유 상태에 대한 저장 공간 관리 및 확보UnsharedConcreateFlyweight
공유하지 않는 구현체
FlyweightFactory
Flyweight 객체 생성 및 관리
장점⌗
어플리케이션에 공유 자원을 갖는 객체가 많다면 자원을 절약할 수 있다.
단점⌗
공유 자원 호출시 존재하는 데이터 검색과 같은 비용이 발생한다.
객체를 공유자원으로 다시 나눠서 구현하기에 비교적 코드가 복잡해진다.