묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결코딩으로 학습하는 GoF의 디자인 패턴
팩토리메소드 = 추상팩토리?
이 코드는 팩토리 메소드 패턴이고,public interface ShipFactory { Ship createShip(); } 이 코드는 추상 팩토리 패턴입니다.public interface ShipPartsFactory { Anchor createAnchor(); Wheel createWheel(); } 팩토리 메소드 패턴은 product와 createor간의 의존성을 낮추는것을 목적으로, 서브 클래스인 concreator에게 의존성을 위임합니다. 추상 팩토리 패턴은 여러 객체의 생성이 있을때 여러 객체의 의존성을 낮추기 위해, 마찬가지로 서브 클래스인 concreator에게 의존성을 위임합니다그렇다면 사실상 차이는 생성하는 객체의 수 뿐인데, 왜 다른 이름으로 만들었는지 이해가 안가네요..
-
미해결이펙티브 자바 완벽 공략 1부
굳이 팩토리 메소드 패턴을 쓰는 이유가 뭔가요??
우선 추천해주신대로 디자인패턴 강의를 아직 수강하지는 않았습니다. (수강 예정입니다!) 이 강의에서 팩토리 메소드 패턴을 보여주셨습니다. 물론 책에서 "팩토리 메소드 방식도 적용할 수 있다"라는 문구때문에 예시를 들어주신 것 같긴한데, 이 강의에서 보여주신 예제만 보면 SpellChecker 클래스의 클라이언트가 Dictionary 인터페이스의 구현체만 주입해줘도 충분할 것 같습니다.그런데 굳이 팩토리를 주입받고 그 팩토리로부터 Dictionary 구현체를 반환받아 자신의 Dictionary 타입의 필드에 할당하는게 조금 와닿지가 않습니다. 최대한 단순하게 예시를 들어주신거라고 이해하고는 있습니다만 궁금해서 질문드립니다. 추가) 강의 끝 부분에 객체를 생성하는 과정이 복잡할 때 사용한다고 하셨는데, 클라이언트에게 복잡한 객체를 생성하는 일을 시키지 않기 위해서...사용하는 것일수도 있겠네요.(자문자답일까요..)