I would say that everything is in order, although, in my opinion, it is too complicated. You do not need a class ScheduleTypeFactoryImpl. Then you can change the class UseScheduleTypeFactoryonly to ScheduleTypeFactory.
:
ScheduleTypeFactory {
public enum ScheduleTypeEnum {
CableOnDemandScheduleTypeID,
BroadbandScheduleTypeID,
LinearCableScheduleTypeID,
MobileLinearScheduleTypeID
}
public static IScheduleItem getScheduleItem(ScheduleTypeEnum scheduleType) {
IScheduleItem scheduleItem = null;
switch (scheduleType) {
case CableOnDemandScheduleTypeID:
scheduleItem = new VODScheduleItem();
break;
case BroadbandScheduleTypeID:
scheduleItem = new VODScheduleItem();
break;
case LinearCableScheduleTypeID:
scheduleItem = new LinearScheduleItem();
break;
case MobileLinearScheduleTypeID:
scheduleItem = new LinearScheduleItem();
break;
default:
break;
}
return scheduleItem;
}
}
" ".