추상 팩토리 패턴은 팩토리 메소드 패턴과 다르다는 점을 인지해야 한다. 둘 중 “어느 것이 더 낫다.” 라는 말은 할 수 없으며 상황에 따라 사용한다.
추상 팩토리 패턴은 서로 관련이 있는 객체들을 모아 팩토리 클래스로 만들고, 이 팩토리들을 조건에 따라 생성하도록 다시 팩토리를 만들어서 객체를 생성하는 패턴이다.
팩토리 메소드 패턴은 완제품을 찍어내기에 좋은 공정이며, 추상 팩토리 패턴은 부품을 조립하여 제품을 찍어내기에 좋은 공정이다.
Unity에서는 추상 팩토리 패턴을 적을 만들 때 사용한다. 하지만 팩토리 메소드 패턴과 다르게 적에게 부여할 특성이나 무기 등을 제공할 수 있다.
객체 생성에 일관성을 유지할 수 있다.
관련된 객체들을 한 번에 생성할 수 있기 때문에, 제품군 간의 일관성을 유지할 수 있다. 예를 들면 보스 몬스터를 생성한다고 가정했을 때, 보스 몬스터의 종류와 무기를 한 번에 생성할 수 있다.
클라이언트 코드의 커플링이 줄어든다.
팩토리를 통해 객체를 생성하면 클라이언트 코드가 특정 클래스의 구현을 알 필요가 없기 때문에, 코드가 인터페이스만을 의존하게 된다. 이는 코드 변경 시 영향을 최소화시킨다.
객체 생성 로직의 수정이 클라이언트에 영향을 미치지 않는다.
객체 생성 과정이 클라이언트 코드에서 분리되어 있기 때문에, 객체 생성 로직을 변경한다고 하더라도 클라이언트 코드에는 영향을 주지 않는다.