코딩으로 학습하는 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
'프로그래밍 강의 메모 > 코딩으로 학습하는 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 |