关于简单模式和工厂方法模式的疑问

liujiahaol12345 2017-03-07 05:19:33
最近在看设计模式,说工厂方法弥补了简单工厂的开放-封闭原则,因为增加新产品要去修改工厂类增加case判断,后面我又看到可以用反射来避免简单工厂的switch case判断,那这样是不是就用不上工厂方法了,增加产品时简单工厂只需增加具体的产品类,工厂方法还要多增加产品工厂,求大神指点迷津
...全文
63 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
其实多出来任何中间层,然后把中间层再弄成“反射”,再用中间层作为“工厂方法”,都能雷人,看上去好像很复杂很有用似地。其实你从配置文件中如何表示反射规则(声明Assembly和Type)的角度,根据业务需要来配置,只要知道“反射”技术就行了,并不需要繁冗地为各种花式命名。
  • 打赏
  • 举报
回复
是的。 实际上你没有必要背那些雷人的设计模式,你可以用几十分之一的精力、从现实出发就够了。现实的设计模式比 GOF 的设计模式实用得多,但是很多人就是因为书上的描述的比较有趣儿、设计模式名字雷人,所以喜欢背它。而不敢看到设计模式的雷人和繁琐的地方。
  • 打赏
  • 举报
回复
是的 工厂方法本来就是将new的过程延迟到实际工厂,而该生成什么工厂,还是要通过各种判断,如果要想没new xxxFactory,那就又要出现简单工厂来创建Factory实例,所以如果够简单的话,那没必要用工厂方法,简单工厂就可以 当然这不是说工厂方法就没市场了,如果你只是接口提供方,并不知道实际的Factory,那么还是需要采用工厂方法来约束,简单工厂其实就可以认为是规范Factory必须是遵循指定的规则,否则是无法反射创建的

110,532

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧