작성
·
794
·
수정됨
2
이 코드는 팩토리 메소드 패턴이고,
public interface ShipFactory {
Ship createShip();
}
이 코드는 추상 팩토리 패턴입니다.
public interface ShipPartsFactory {
Anchor createAnchor();
Wheel createWheel();
}
팩토리 메소드 패턴은 product와 createor간의 의존성을 낮추는것을 목적으로, 서브 클래스인 concreator에게 의존성을 위임합니다.
추상 팩토리 패턴은 여러 객체의 생성이 있을때 여러 객체의 의존성을 낮추기 위해, 마찬가지로 서브 클래스인 concreator에게 의존성을 위임합니다
그렇다면 사실상 차이는 생성하는 객체의 수 뿐인데, 왜 다른 이름으로 만들었는지 이해가 안가네요..
답변 1
2
좋은 질문이네요. 강의에서도 여러번 언급하지만, 여러 패턴들이 모양만 따지고 보면 사실 다 비슷합니다. 중요한건 "목적"이고, 해결하려는 문제가 무엇이냐에 따라 다른 이름을 붙인거라고 생각하시면 좋습니다.