美文网首页2017读书计划
1.4:烘烤OO的精华:工厂模式

1.4:烘烤OO的精华:工厂模式

作者: 漫步_2310 | 来源:发表于2017-05-13 16:40 被阅读29次

1:经典的例子,披萨-工厂

简单工厂思路:从工厂类得到一个原始披萨,然后经过:准备prepare、烘焙bake、切片cut、装盒box,即可形成一个美味的披萨。

2:使用静态工厂(利用静态方法)的好处?坏处?

好处:不需要使用创建对象的方法来实例化对象。

坏处:不能通过继承来改变创建方法的行为。

3:对象组合可以在运行时动态改变行为,因为我们可以更换不同的实现。

4:使用简单工厂的披萨店示例:

下图可以用这么一句话理解:披萨店通过披萨工厂获取一种类型的披萨实例。

5:提醒一下,重要的事需要不断提醒?

在设计模式中,所谓的“实现一个接口”并“不一定”表示写一个类,并利用Implement关键词来实现摸个Java接口。

“实现一个接口“泛指”实现某个超类型(可以是类或接口)的某个方法“。

6:上面的步骤4使用的是简单工厂的形式创建披萨店。当然了,也可以通过工厂方法来实现。接下来就详细说一下

我们的工厂方法模式哈,gogogo~~~

7:定义工厂方法模式

披萨店的例子说明一下:

8:理解简单工厂和工厂方法之间的区别?

简单工厂把全部的事情,在一个地方都处理完了。然而工厂方法却是创建一个框架,让子类决定要如何实现。仔细思考这句话。

9:学到的设计原则:依赖倒置原则

解释一下:这个原则听起来像”针对接口编程,不针对实现编程“,的确很相似,但是这里更强调”抽象“。

这个原则说明了:不能让高层组件依赖底层组件,而且,不管是高层组件还是底层组件,”两者“都应该

依赖抽象。

10:接下来讲解抽象工厂,哈哈哈

原料家族:生产芝加哥披萨菜单上的披萨和生产纽约比萨菜单上的披萨所用的原料,可能根据当地提供,会有所不同(也就是说:芝加哥和纽约提供的披萨产品家族相同,但是制作原料不同),怎么设计??

针对上图芝加哥披萨菜单和纽约披萨菜单,继续剖析:

11:定义抽象工厂

从PizzaStore例子来看看:

12:讲讲工厂方法和抽象工厂对比?

(1)细心观察可以发现,抽象工厂的每个方法实际上看起来都像是工厂方法。

(2)大家都负责创建对象,但是工厂方法用的方法是继承,而抽象工厂是通过对象的组合实现。

(3)利用工厂方法创建对象,需要扩展一个类,并覆盖它的工厂方法。

(4)还是用披萨店的例子,对比一下区别,上面的文章已经说过了,不再赘述,哈哈哈~~~

13:还是披萨店例子,分别画出简单工厂、工厂方法、抽象工厂的具体实现类图

(1)简单工厂

(2)工厂方法

(3)抽象工厂

相关文章

  • 1.4:烘烤OO的精华:工厂模式

    1:经典的例子,披萨-工厂 简单工厂思路:从工厂类得到一个原始披萨,然后经过:准备prepare、烘焙bake、切...

  • 工厂模式: 深入理解工厂模式——由对象工厂生成对象

    目录: 一 工厂模式介绍 1.1 工厂模式的定义 1.2 工厂模式的分类: 1.3 在开源框架中的使用 1.4 为...

  • 设计模式 - 工具箱

    大纲: OO模式 OO基础 OO原则 Point # OO模式 策略模式 观察者模式 装饰者模式 生成器模式 Bu...

  • 烘烤模式的夏天

    这几天,我们这里天气进入高温烘烤模式。最高气温已达37度。 今天早上6点多起床,太阳就像大火球一样...

  • 常用设计模式

    设计模式 工厂模式 工厂模式思路上分:简单工厂模式,工厂模式, 抽象工厂模式// 抽象工厂模式可以代替工厂模式,做...

  • 工厂模式

    工厂模式细分三种:简单工厂模式、工厂模式、抽象工厂模式。 工厂模式相当于抽象了简单工厂模式的工厂类,而抽象工厂模式...

  • 工厂模式

    工厂模式 就是工厂---生产-->产品 在设计模式中,分为 简单工厂模式, 工厂方法模式,抽象工厂模式. 工厂模式...

  • 设计模式-之简单工厂模式(四)

    工厂模式的分类  工厂模式分为静态工厂模式、工厂方法模式、抽象工厂模式。 今天和大家分享的是简单工厂模式。 什么是...

  • 找女朋友之简单工厂模式,工厂模式,抽象工厂模式

    找女朋友之简单工厂模式,工厂模式,抽象工厂模式 找女朋友之简单工厂模式,工厂模式,抽象工厂模式

  • iOS设计模式-工厂模式

    工厂模式分为简单工厂模式,工厂模式、抽象工厂模式三类。 简单工厂模式 1. 定义 简单工厂模式并不是常用的设计模式...

网友评论

    本文标题:1.4:烘烤OO的精华:工厂模式

    本文链接:https://www.haomeiwen.com/subject/rugxxxtx.html