我一直在使用工厂方法创建模式一段时间.我刚刚被告知这个:
public static class ScheduleTypeFactory
{
public static IScheduleItem GetScheduleItem(ScheduleTypeEnum scheduleType)
{
IScheduleItem scheduleItem = null;
switch (scheduleType)
{
case ScheduleTypeEnum.CableOnDemandScheduleTypeID:
{
scheduleItem = new VODScheduleItem();
break;
}
case ScheduleTypeEnum.BroadbandScheduleTypeID:
{
scheduleItem = new VODScheduleItem();
break;
}
case ScheduleTypeEnum.LinearCableScheduleTypeID:
{
scheduleItem = new LinearScheduleItem();
break;
}
case ScheduleTypeEnum.MobileLinearScheduleTypeID:
{
scheduleItem = new LinearScheduleItem();
break;
}
}
return scheduleItem;
}
}
Run Code Online (Sandbox Code Playgroud)
不是我的"技术"主管的工厂方法创建模式,而没有告诉我为什么或给我她的解释.我很友好地要求解释,她告诉我她没有时间.我被告知要重命名它.如果我错了,那么毫无疑问我会接受我已经错误地实施了多年.这是你如何实现工厂方法创建模式?提前致谢.
LINQ和Lambda表达式是否会降低圈复杂度?只是很好奇,因为当VS分析器增加时,CodeRush实际上显示了cc的减少.
有多糟糕?我已经阅读了无数文章,从未创建过具有行为的抽象DataContracts,但似乎这样做将解决我遇到的问题,这将阻止我在各处创建工厂以确定子类实现.我的问题是,如果我决定在数据合同中添加行为,我会受到惩罚吗?当然,在调用存储库调用并保持数据之前,它们不能被消耗并且在那里执行特定于该子类类型的某些操作.我可以为每个子类创建"Manager"类,但这会让我回到工厂,我正在尝试更多的多态方法.提前致谢.
有没有考虑过这个?就个人而言,我认为在配置文件中管理端点是一件痛苦的事.做一个比另一个有利有弊吗?