구조 관련 디자인 패턴 > 플라이웨이트 패턴(Flyweight Pattern)
코딩으로 학습하는 GoF의 디자인 패턴 - 인프런 | 강의
디자인 패턴을 알고 있다면 스프링 뿐 아니라 여러 다양한 기술 및 프로그래밍 언어도 보다 쉽게 학습할 수 있습니다. 또한, 보다 유연하고 재사용성이 뛰어난 객체 지향 소프트웨어를 개발할
www.inflearn.com
플라이웨이트 패턴
- 구조 관련 디자인 패턴.
- 객체를 가볍게 만들어 메모리 사용을 줄이는 패턴.
- 외적인 속성 즉 자주 변하는 속성과 내적인 속성 즉 변하지 않는 속성을 분리하고 재사용하여 메모리 사용을 줄일 수 있다.
많은 인스턴스를 생성하는 프로그램의 경우 많은 메모리를 사용하게 된다.
메모리 낭비를 줄이기 위해 공통되는 부분을 따로 모아서 재사용하는 패턴이다.
잘 변하지 않는 속성을 따로 모아서 재사용한다.
Flyweight를 Client에서 FlyweightFactory를 통해서 가져와 사용한다.
한번 동일한 속성으로 만들어놓은 Flyweight를 FlyweightFactory에서 캐싱을 해주다가,
Client가 같은 속성을 요청할 때 동일한 Flyweight 인스턴스를 가져다가 쓸 수 있게 하는 패턴이다.
플라이웨이트 패턴의 장점
- 애플리케이션에서 사용하는 메모리를 줄일 수 있다.
- 예제에서는 맵 자료형인 캐시 변수에 추가하여 키값만 같다면 기존 인스턴스를 가져오는 방식으로 메모리를 절약하고 있다.
https://refactoring.guru/ko/design-patterns/flyweight
Flyweight
/ Design Patterns / Structural Patterns Flyweight Also known as: Cache Intent Flyweight is a structural design pattern that lets you fit more objects into the available amount of RAM by sharing common parts of state between multiple objects instead of keep
refactoring.guru