3
저는 'Factory method'페이지를 겪고 있었고 link을 발견했습니다. 및 this comment입니다. 이 예제는 변형으로 보았고 원래의 방식대로 구현하려고 생각했습니다. 즉, 인스턴스 생성을 하위 클래스로 연기하는 것입니다 ...팩토리 메소드 구현
여기 내 시도입니다. 다음 코드는 링크에 지정된 예제의 Factory 패턴을 구현합니까? 이것이 다시 고려되어야하는지 검증하고 제안하십시오.
public class ScheduleTypeFactoryImpl implements ScheduleTypeFactory {
@Override
public IScheduleItem createLinearScheduleItem() {
return new LinearScheduleItem();
}
@Override
public IScheduleItem createVODScheduleItem() {
return new VODScheduleItem();
}
}
public class UseScheduleTypeFactory {
public enum ScheduleTypeEnum {
CableOnDemandScheduleTypeID,
BroadbandScheduleTypeID,
LinearCableScheduleTypeID,
MobileLinearScheduleTypeID
}
public static IScheduleItem getScheduleItem(ScheduleTypeEnum scheduleType) {
IScheduleItem scheduleItem = null;
ScheduleTypeFactory scheduleTypeFactory = new ScheduleTypeFactoryImpl();
switch (scheduleType) {
case CableOnDemandScheduleTypeID:
scheduleItem = scheduleTypeFactory.createVODScheduleItem();
break;
case BroadbandScheduleTypeID:
scheduleItem = scheduleTypeFactory.createVODScheduleItem();
break;
case LinearCableScheduleTypeID:
scheduleItem = scheduleTypeFactory.createLinearScheduleItem();
break;
case MobileLinearScheduleTypeID:
scheduleItem = scheduleTypeFactory.createLinearScheduleItem();
break;
default:
break;
}
return scheduleItem;
}
}
** 이것은 ** Factory Method 패턴이 아닙니다 **; 이것은 정확하게이 OP가 참조하는 [질문] (http://stackoverflow.com/questions/806911/is-this-factory-method-creation-pattern)의 원저자가 사용한 패턴입니다. 그 질문에 대한 답은 GoF "Factory Method"가 아니라 "Simple Factory"임을 나타냅니다. (나는이 사실과 그 질문을 모두 발견했다. 왜냐하면 나는 또한 실제 * Factory Method를 더 잘 이해하려고 노력하고 있기 때문이다) –