플라이웨이트 패턴
- 구조 관련 디자인 패턴.
- 객체를 가볍게 만들어 메모리 사용을 줄이는 패턴.
- 외적인 속성 즉 자주 변하는 속성과 내적인 속성 즉 변하지 않는 속성을 분리하고 재사용하여 메모리 사용을 줄일 수 있다.
많은 인스턴스를 생성하는 프로그램의 경우 많은 메모리를 사용하게 된다.
메모리 낭비를 줄이기 위해 공통되는 부분을 따로 모아서 재사용하는 패턴이다.
잘 변하지 않는 속성을 따로 모아서 재사용한다.
Flyweight를 Client에서 FlyweightFactory를 통해서 가져와 사용한다.
한번 동일한 속성으로 만들어놓은 Flyweight를 FlyweightFactory에서 캐싱을 해주다가,
Client가 같은 속성을 요청할 때 동일한 Flyweight 인스턴스를 가져다가 쓸 수 있게 하는 패턴이다.
플라이웨이트 패턴의 장점
- 애플리케이션에서 사용하는 메모리를 줄일 수 있다.
- 예제에서는 맵 자료형인 캐시 변수에 추가하여 키값만 같다면 기존 인스턴스를 가져오는 방식으로 메모리를 절약하고 있다.
https://refactoring.guru/ko/design-patterns/flyweight
'프로그래밍 강의 메모 > 코딩으로 학습하는 GoF의 디자인 패턴_백기선' 카테고리의 다른 글
행동 관련 디자인 패턴 > 책임 연쇄 패턴(Chain of Responsibility Pattern) (0) | 2022.05.26 |
---|---|
구조 관련 디자인 패턴 > 프록시 패턴(Proxy Pattern) (0) | 2022.05.26 |
구조 관련 디자인 패턴 > 퍼사드 패턴(Facade Pattern) (0) | 2022.05.26 |
구조 관련 디자인 패턴 > 데코레이터 패턴(Decorator Pattern) (0) | 2022.05.25 |
구조 관련 디자인 패턴 > 컴포짓 패턴(Composite Pattern) (0) | 2022.05.25 |