软件设计模式ch4 - 工厂方法模式.ppt

软件设计模式ch4 - 工厂方法模式.ppt

ID:49414999

大小:8.90 MB

页数:90页

时间:2020-02-06

软件设计模式ch4 - 工厂方法模式.ppt_第1页
软件设计模式ch4 - 工厂方法模式.ppt_第2页
软件设计模式ch4 - 工厂方法模式.ppt_第3页
软件设计模式ch4 - 工厂方法模式.ppt_第4页
软件设计模式ch4 - 工厂方法模式.ppt_第5页
资源描述:

《软件设计模式ch4 - 工厂方法模式.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、软件设计方法及设计模式张聚礼副教授/系统分析师工厂方法模式4一二三四五六对象村比萨简单工厂工厂方法模式比萨店抽象工厂模式比较工厂方法和抽象工厂主要内容一、对象村比萨思考“new”识别变化的部分新的问题(一)(二)(三)看到new,就会想到具体(一)思考“new”一般用法(一)思考“new”同理(一)思考“new”这样,一旦发生变化,必须重新检查并修改该代码,缺乏柔性,不便于维护。(一)思考“new”但是,总要使用new的。真正的问题是变化产生的。(一)思考“new”假如你有一个比萨店,代码可能如下:(二)识别变化的部

2、分这样,需要更多的比萨类型。(二)识别变化的部分问题是需要增加更多的比萨类型。(三)新的问题二、简单工厂封装创建对象的代码建立简单的比萨工厂(一)(二)定义简单工厂(三)使用框架(四)允许子类做决定(五)把创建比萨的代码移到另一个对象中。(一)封装创建对象的代码这个新对象称为“工厂”工厂处理创建对象的细节(一)封装创建对象的代码(二)建立简单的比萨工厂重做PizzaStore类(二)建立简单的比萨工厂(三)定义简单工厂针对接口编程可以隔离掉系统以后可能发生的一大堆改变。用静态方法定义的工厂被成为静态工厂,这样就不用使

3、用创建对象的方法来实例化对象,使用方便。但是这样做的缺点是无法通过继承来改变创建方法的行为。简单工厂不是一种设计模式,但是它比较常用。(三)定义简单工厂加盟比萨店(三)定义简单工厂现在的做法。(三)定义简单工厂但是,想要更多的质量控制(三)定义简单工厂修改PizzaStore类(四)使用框架(五)允许子类做决定子类如何做决定(五)允许子类做决定从orderPizza()来看(五)允许子类做决定orderPizza()做了许多事情(五)允许子类做决定当orderPizza()调用createPizza()时,比萨店子类

4、负责创建比萨。做哪一种比萨由比萨店来决定。(五)允许子类做决定三、工厂方法模式开比萨店声明工厂方法认识工厂方法模式(一)(二)(三)平行的类层级(四)定义工厂方法模式(五)(一)开比萨店纽约风味比萨店(一)开比萨店芝加哥风味比萨店、加州风味比萨店(二)声明工厂方法(二)声明工厂方法工厂方法(二)声明工厂方法如何使用比萨工厂方法订购比萨呢?(二)声明工厂方法如何订购需要比萨店的实例有了各自的PizzaStore,分别调用orderPizza()方法,传入各自喜爱的比萨类型调用createPizza()方法创建比萨ord

5、erPizza()方法并不知道真正创建的是哪种比萨,但知道这是一个比萨。这就够了,不是吗?(二)声明工厂方法订单比萨(二)声明工厂方法(二)声明工厂方法(二)声明工厂方法(二)声明工厂方法(二)声明工厂方法现在,来实现比萨(二)声明工厂方法现在,来实现比萨(续)(二)声明工厂方法还需要一些子类(二)声明工厂方法还需要一些子类(续)(二)声明工厂方法现在,来吃比萨吧(二)声明工厂方法RUN(三)认识工厂方法模式Creator类(三)认识工厂方法模式Product类(四)平行的类层级两者之间的关系(五)定义工厂方法模式工

6、厂(FactoryMethodPattern)方法模式:定义了一个创建对象的接口,但是由子类来决定要实例化的类是哪一个。它让类把实例化推迟到了子类。(五)定义工厂方法模式四、比萨店对象依赖依赖倒置原则(一)(二)比萨店(三)(一)对象依赖设计原则六:要依赖抽象,不要依赖具体类。(二)依赖倒置原则例如:(二)依赖倒置原则依赖倒置原则说明不能让高层组件依赖于底层组件,而且它们都应该依赖于抽象。(二)依赖倒置原则倒置思考方式实现一个比萨店,首先应该从顶端开始,然后到具体的类。(二)依赖倒置原则现在,倒置想法,不从顶端开始,

7、想到要抽象一个Pizza。(二)依赖倒置原则现在,重新思考比萨店的设计,需要用到工厂方法。(二)依赖倒置原则遵循的原则变量不可以持有具体类的引用。这可以通过使用工厂避开。不要让类派生自具体类。否则就会依赖具体类,违反了“针对接口编程,而不是针对现实编程”的软件设计原则。不要覆盖基类中已实现的方法。出现这样的情况就说明基类设计的有问题。(二)依赖倒置原则(二)依赖倒置原则具有弹性框架,并遵循设计原则。(三)比萨店确保原料一致(三)比萨店原料家族(三)比萨店原料家族(续)(三)比萨店原料家族(续)(三)比萨店原料家族(续

8、)(三)比萨店建造原料工厂(三)比萨店建造纽约原料工厂(三)比萨店重做Pizza(三)比萨店重做Pizza(续)(三)比萨店重做Pizza(续)(三)比萨店回到比萨店(三)比萨店看看,我们做了什么(三)比萨店更多的比萨(三)比萨店更多的比萨(续)(三)比萨店更多的比萨(续)(三)比萨店五、抽象工厂模式定义类图(一)(二)从比萨店的观点看(三)(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。