Flyweight Pattern
개요 Flyweight는 격투기에서 가장 가벼운 몸무게 범주에 속한다. 그렇다면 이 패턴 또한 무언가를 가볍게 처리한다고 미루어 짐작할 수 있다. Flyweight 패턴은 어떤 클래스의 인스턴스 한 개를 이용하여 가상 인스턴스를 제공하고 싶을 때 사용한다. 예를 들어 스타크래프트를 생각해보자. 마린(해병)은 움직이기, 총 쏘기, 스팀팩 등 모두 공통적인 기능을 사용한다. 이때 200명의 마린 인스턴스를 전부 생성한다고 어떨까? 분명 공통적인 부분은 전혀 변하지 않는다. 그러나 모든 인스턴스가 이를 각자 가지고 메모리에 올라가기 때문에 불필요한 메모리 낭비가 발생한다. 이 패턴을 다시 말하면 어떤 클래스의 공통적인 기능들을 하나의 인스턴스를 공유하도록 하여 메모리를 절약하는 패턴이다. 이제 예제 코드를 살..
2021.12.11