OOP/Design Pattern
11. 플라이웨이트(Flyweight) 패턴
플라이웨이트(Flyweight) 패턴: 구조패턴 동일하거나 유사한 객체들 사이에 가능한 많은 데이터를 서로 공유하여 사용하도록 하여 메모리 사용량을 최소화하는 디자인 패턴이다. 특정 클래스의 인스턴스 한 개만 가지고 여러 개의 가상 인스턴스를 제공하고 싶을 때 사용한다. 쉽게 말해 인스턴스를 가능한 대로 공유하여 메모리 낭비를 줄이는 방법이다. 중요한 점은 중복되는 객체는 공유해서 사용하자는 것! Flyweight 공유에 사용할 클래스들의 인터페이스를 선언 ConcreteFlyweight Flyweight의 구체 클래스 (실제 공유될 객체) FliweightFactory Flyweight 인스턴스를 생성 또는 공유해주는 역할 Client 플라이웨이트틀 사용하는 사용자 Weapon(Flyweight) pa..