• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#设计模式-工厂方法(总结)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

在下列情况下,应该考虑使用工厂方法:

1.一个类无法预测它要创建的对象属于那一个类。

2.一个类用它的子类来指定所创建的对象。

3.把要创建那一个类的信息局部化的时候。

简单的工厂模式也就是有一个类负责决定在单继承体系结构中实例化那一个子类(又称派生类)。

工厂方法模式(Factory Method Pattern)对这种思想进行了巧妙的扩展,它不是用一个专门的类来实例化那一个子类。相反,超类(又称基类、父类)把这种决定延迟到每个子类。这种模式实际上没有决策点,既没有直接选择一个子类实例化的决策。按这种模式编写的程序定义了一个抽象类,它去创建对象,但让子类决定创建哪一种对象。

如上UML图,Event为基类,但他并没有去决定让任何一个类去负责实例化某个子类,而是让它的子类PrelimEvent或TimedFinalEvent来决定创建哪一种对象,如StralghtSeeding或ClrcleSeeding。

Event及Seeding都为abstract类,让子类去实现它们的方法。

当然还会有其它一些类,用来存储对象的类或者功能类。

对于实现工厂模式,还需要考虑几个问题:

1.基类是一个抽象类,模式必须返回一个完整的可工作的类。

2.积累包含默认方法,除非默认方法不能胜任,才会调用这些方法。

3.可以将参数传递给工厂,告诉工厂返回那一个类型的类。这种情况下,类可以共享相同的方法名,但完成工作可以不同。

对于工厂方法,很多地方还很模糊,想用到实际应用中,还需大量的思考判断,积累经验。只有不断的琢磨,才能提高自己!


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#获取根目录的方法总结发布时间:2022-07-10
下一篇:
web服务器控件的开发例子C#.net发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap