Я бы сказал, что все в порядке, хотя, на мой взгляд, слишком сложно. Вам действительно не нужен класс ScheduleTypeFactoryImpl
. Тогда вы можете изменить класс UseScheduleTypeFactory
на 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;
}
}
И вы можете включить регистр по умолчанию.