设计模式学习之四(上)—开自己的比萨店
来源:互联网 发布:电脑没网络怎么装驱动 编辑:程序博客网 时间:2024/04/28 12:38
前面说过其中之一的设计原则我们不应该依赖实现编程,但是当我们每次用new时不正是在依赖实现编程吗
正如上面的代码,我们使用接口让代码有了弹性,但是还是得建立具体类的实例,当有一群相关的具体类时通常会写出这样的代码:
当看到这样的代码,一旦有变化或扩展,就要重新打开这段代码进行修改,这违背了对修改关闭的原则,通常这样修改过的代码将造成部分系统更难维护和更新,而且更容易犯错。那怎么办呢,想想前面所有的设计原则之一:封装变化。那么我们开始识别变化的部分吧。
假设你有个比萨店,身为比萨店得主人,你的代码可能这样写:
如果你需要更多的比萨,必须增加一些代码,来根据比萨的类型来制造比萨:
但压力来自于增加更多的比萨,或者某种比萨卖的不好我想从比萨店去掉,就要一再修改刚增加上的代码,但是比萨的准备,烘烤,包装多年来很少变,变的只是被制作的对象而已。既然已经看出来那些变化,那些不变化的地方,是我们封装变化的时候了,将创建对象移到orderPizzas()之外,移到别的地方,这个地方我们称之为工厂,但需要比萨时就向工厂要,至于比萨产生的细节我不关心,我只关心我是否能拿到比萨。我们建立一个简单比萨工厂:
是时候修改我们的客户代码了,我们所要做的是向工厂要比萨,其他不用关心:
上面的简单工厂其实不是一个设计模式,反而更像一种编程习惯。有些编程人员习惯把它误认为是“工厂模式”。但也不要因为简单工厂不是一个真正的模式,就忽略他的用法,让我们看看新的比萨店的类图:
谢谢简单工厂为我们暖身。接下来登场的是两个重量级模式,他们都是工厂,你将会看到更多的比萨。
- 设计模式学习之四(上)—开自己的比萨店
- 设计模式学习之四(中)工厂方法模式(Factory Method)—让别人进行比萨店加盟
- 读前辈的大话设计模式(四)之装饰模式,抒自己的读后感
- 设计模式学习(四)之建造者模式
- 设计模式学习(四)
- 设计模式学习(四)
- 大话设计模式学习(四)——装饰模式
- 设计模式学习(四) — 行为模式
- C# Hadoop学习笔记(四)—设计自己的云计算框架
- 设计模式之(四)——建造者模式
- 设计模式学习(上)
- 设计模式之迭代器模式(四)
- 设计模式之(四)Singleton模式
- 设计模式(四)之命令模式
- 浅谈自己学习设计模式的感受
- Java设计模式之二——四种不同的单例模式(Singleton)
- 设计模式学习之——六大设计原则之四:接口隔离原则
- 设计模式学习之——六大设计原则之四:接口隔离原则
- 简单的计算器代码
- js 页面跳转方式总结
- 2011-5-18
- 重载运算符
- 32bit_and_64bit
- 设计模式学习之四(上)—开自己的比萨店
- Tomcat 系统架构与设计模式,第 1 部分: 工作原理
- struts2中表单提交乱码问题
- 回调机制的通俗理解
- C++回调函数用法
- 【Android 2.3 & 2.3.3】 近场通信NFC API
- mapjis我要征服你
- void timer(void) interrupt x using x
- DS4700 消黄灯的方法