[设计]工厂模式
来源:互联网 发布:软件用户手册 由谁来写 编辑:程序博客网 时间:2024/04/30 01:45
[设计]工厂模式
场景
- 就是简单工厂模式每次添加一个雷达都要重新改工厂,万一把工厂改坏了,那不就扯淡了。
- 要想让一个东西变化的东西稳定就抽象它,抽象才稳定,可是最终还是要实现,所以实现要推到子类中了,只要使用之前实现了原则是推迟都是没有问题。*
解决办法
- 如上所说,工厂要稳定,怎么办呢,抽象它。
- 我们先来一个抽象的工厂基类
public abstract class FactoryBase { public abstract LidarBase CreateLidarFactory(); }
-我们也附上雷达的基类,尽量能懂
public abstract class LidarBase { public abstract void CreateLidar(); }
- 我们附上具体的雷达类
class WindLidar : LidarBase { public override void CreateLidar() { Console.WriteLine("我是风雷达"); } } class TempLidar : LidarBase { public override void CreateLidar() { Console.WriteLine("我是温雷达"); } }
- 我们再附上对应的工厂子类
class WindFactory : FactoryBase { public override LidarBase CreateLidarFactory() { return new WindLidar(); } } class TempFactory : FactoryBase { public override LidarBase CreateLidarFactory() { return new TempLidar(); } }
- 我们是不是可以这样用
static void Main(string[] args) { FactoryBase windFactory = new WindFactory(); FactoryBase tempFactory = new TempFactory(); LidarBase wind = windFactory.CreateLidarFactory(); LidarBase temp = tempFactory.CreateLidarFactory(); wind.CreateLidar(); temp.CreateLidar(); Console.Read(); }
类图
- 占坑
注意
- 这样是不是就解决了简单工厂的问题,我们添加一个雷达就不能用工厂类了,我们保要添加对应的工厂和雷达对象就可以了。
- 是不是还全用工厂的优点呢
- 当然工厂是不是感觉一个型,全是克隆出来的。想要其中的一个不一样,是不是感觉有点不太可能。
- 我想在雷达工厂生产一个全天飞机是不是也不太可能,产品固定切单一
源码
中国梦,什么是中国梦,天天说我不是没太懂,我感觉个人梦组合起来才是中国梦,每个工程师不都有一个产品梦吗?让自己的产品能为他人带来服务。
阅读全文
0 0
- 设计模式--工厂设计
- 设计模式------工厂模式
- 设计模式------工厂模式
- 设计模式 [ 工厂模式 ]
- 设计模式--工厂模式
- 设计模式-工厂模式
- 设计模式--工厂模式
- 设计模式 工厂模式
- 设计模式-工厂模式
- 设计模式 -- 工厂模式
- 设计模式-工厂模式
- 设计模式----工厂模式
- 设计模式---工厂模式
- 设计模式-工厂模式
- 设计模式--工厂模式
- 设计模式---工厂模式
- 设计模式-工厂模式
- 设计模式--工厂模式
- [设计]简单工厂模式
- 518抽奖软件源码之:检查文件名合法性
- 51nod 1154 回文串划分
- JZOJsenior4778.【NOIP2016提高A组模拟9.14】数列编辑器
- tar解压问题gzip: stdin: not in gzip format
- [设计]工厂模式
- unity的生命周期
- HTML:Input元素标签的详细介绍
- UVA 437 The Tower of Babylon
- [设计]抽象工厂模式
- 图片自动轮播+上拉加载下拉刷新+侧滑菜单+小圆点
- 大数据CDH之Oozie_10_03
- 基于ssm框架的java后台分页方法
- Spring+SpringMVC+MyBatis+SpringSecurity+maven框架整合