사용 시점 및 이유
- 비슷한 객체를 많이 생성하여 메모리가 부족할 때
- 그 객체들이 여러 중복된 필드(상태)를 포함하고 있으며, 이 상태만을 추출한 객체를 공유해도 상관 없을 때
구현
- Client는 팩토리를 통해서만 플라이웨이트 객체를 받아 사용한다.
- 플라이웨이트 구현체는 여러 다른 로직에서 공유해도 상관없는 (불변이면 더 안전) 필드만을 가지고 있는다.
- 변경해야 할 상태값 같은 것들은 메소드의 파라미터로 받는 등의 방법으로 구현한다.
ex) Tree 클래스는 잎의 색깔, 잎의 수 등 을 가지고 있고, 심어져야 할 x, y 좌표 등은 메소드로 받아 구현한다.
'디자인패턴' 카테고리의 다른 글
(행동패턴) 책임연쇄패턴 (0) | 2023.05.06 |
---|---|
(구조패턴) 프록시 패턴 (1) | 2023.05.03 |
(구조패턴) 퍼사드 패턴 (0) | 2023.04.28 |
(구조패턴) 컴포지트(복합체) 패턴 (0) | 2023.04.28 |
(구조패턴) 데코레이터 패턴 (0) | 2023.04.28 |