정의
플라이웨이트는 각 객체의 모든 데이터를 유지하는 대신 여러 객체 간에 공통 상태 부분을 공유하여 사용 가능한 RAM 양에 더 많은 객체를 맞출 수 있는 구조적 디자인 패턴입니다.
UML
장단점
- 장점
- 프로그램에 유사한 개체가 많이 있다고 가정하면 많은 RAM을 절약할 수 있습니다.
- 단점
- 누군가가 flyweight 메소드를 호출 할 때마다 컨텍스트 데이터의 일부를 재계산할 필요가있는 경우, CPU 사이클을 많이 사용하게 됩니다.
- 코드가 훨씬 더 복잡해집니다.
새로운 팀원들은 항상 엔티티의 상태가 왜 그런 식으로 분리되었는지 궁금해 할 것입니다.
참고