Unity에서는 고유한 특성을 가지는 적들을 생성해야 하는 경우가 존재한다. 예를 들면 근거리 적이 있다면 원거리 적이 있는 편이 게임의 재미를 올려줄 것이다.
이럴 때 사용하는 것이 팩토리 메소드 패턴이다. 팩토리 메소드 패턴은 객체를 생성할 때 어떤 클래스의 인스턴스를 생성할 지 서브 클래스에서 결정하게 하는 생성 패턴이다.
부모 추상 클래스는 인터페이스에만 의존하고 실제로 어떤 구현 클래스를 호출할 지는 서브 클래스에서 구현한다. 이렇게 되면 새로운 구현 클래스가 추가되더라도 단지 새로운 팩토리만 추가하면 된다.
유지보수가 용이하다.
개체 생성 코드를 한 곳에서 관리할 수 있기 때문에 유지보수가 용이하다.
SOLID 원칙의 OCP를 준수한다.
동일한 인터페이스 구현으로 새로운 객체가 추가되더라도 기존 스크립트의 수정이 거의 없다.
개발자들과 협업할 때 유리하다.
스크립트의 구조가 잡힌 상태라고 한다면, 여러 개발자들이 여러 서브 클래스를 구현하게 되기 때문에 협업에 유리하다.
구현이 복잡해질 수 있다.
새로운 객체가 추가될 때마다 클래스의 수가 증가하게 되고, 상속 구조가 복잡해질 수도 있다. 이는 코드 관리가 어려워짐을 의미한다. 단순한 객체 생성의 경우에는 필요가 없을 수도 있다.