文章 2017-11-26 来自:开发者社区

【HeadFirst 设计模式学习笔记】11 状态模式

1.我们这次的话题是要实现一个糖果机,这个糖果机中如下的一些状态以指导糖果机的转移: 我们根据这个状态机写了一个有if..else为主体的状态机程序,对每一个状态的转入转出做了实现: public class GumballMachine {       final static int SOLD_OUT = 0;   &nbs...

文章 2017-11-26 来自:开发者社区

【HeadFirst 设计模式学习笔记】13 MVC分析

1.M-V-C ——Model--View--Controller,模式-视图-控制器,这是一种范型。模型对象正是应用系统存在的理由,你设计的对象,包含了数据、逻辑和其他在你的应用领域创建定制的类。视图通常是控件,用来显示和编辑,控制器位于二者中间,负责将每个改变的状态送进送出。而学习设计模式是理解MVC的钥匙。书中用一个iTunes的例子直观描述了MVC: 2.MVC的基本原理: 视图:用...

文章 2017-11-26 来自:开发者社区

【HeadFirst 设计模式学习笔记】14 责任链模式拾零

Head First里面没有详细说这个设计模式,可能是觉得这个设计模式和观察者模式有很大的相似度,事实也正是如此。正如观察者模式一样,也有一个subject表示一个事件的发生,而向后传递的不再是一个或多个并行的观察者,而是一个或多个串行Object(可以理解为处理者,只是名字不同而已)。 我们下边举个实例,在这个例子中,有一个获取帮助的事件发生,根据帮助的种类不同,我们有三层对这个事件进行响应.....

文章 2017-11-26 来自:开发者社区

【HeadFirst 设计模式学习笔记】15 享元模式拾零

这个模式也是这本书中没有详细阐明的,其实这个模式多多少少有点单例模式+简单工厂模式的意味。在Java 中,String对象就是用享元模式进行管理的——Java将所有固定的String都放在了一个常量池中,相同的String只保存一份拷贝——这个带来的好处是显而易见的,内存占用和创建对象的开销都随之降低——这个模式适用于常用的细粒度可共享对象的创建。 我们设想一个问题场景:在一个预约程序中用于表达....

文章 2017-11-26 来自:开发者社区

【HeadFirst 设计模式学习笔记】16 建筑者(Builder)模式拾零

1.概述 这个模式在Head First中没有介绍,大概是因为这个模式和工厂模式有点像。其目的主要是通过创建简单的对象构建一个复杂的对象。 2.举例 举一个例子:创建汽车的相关指标说明。 首先我们创建一个汽车的类: 在上边的这个例子中,关于一个汽车的指标说明有三项:Power Steering、Power Window和Price...

文章 2017-11-26 来自:开发者社区

【HeadFirst 设计模式学习笔记】18 原型(Prototype)模式拾零

1.概述 这个模式在Head First这本书中也没有具体提到。其主要应用于如下场景:对于创建一个新的对象,若且你手中已经有了一个非常相像的对象实例,那么你可以利用这个现有对象进行新对象的创建。用现实中的例子来说,比如细胞分裂,一个细胞分裂为两个细胞(可能这个比喻在生物学上有些出入)。参与这个模式的两种实体为: 原型:一个提供克隆自己的接口的抽象。 具体原型:实现这个克隆自己的的接口的具体实现类....

文章 2017-11-26 来自:开发者社区

【HeadFirst 设计模式学习笔记】17 中介者(Mediator)模式拾零

.概述 该模式在Head First中没有介绍,它用于通过一个中介者完成对象间通信的解耦。当代码中出现大量有着其他对象信息的对象时就可以使用这个模式。 在这个模式中,有如下的参与者: 中介者(Mediator):抽象定义了“同事”(colleagues,稍后有定义)们通信的接口。 具体中介者(Concrete Mediator):实现了“同事”间的通信接口。 同事(Colleague):参与通信....

文章 2017-11-26 来自:开发者社区

【HeadFirst 设计模式学习笔记】19 桥接(Bridge)模式拾零

1.概述 该模式也是Head First中未收录的,其主要用于分离接口与实现,常应用在你不希望将实现和抽象永久绑定的时候。其实质在于提供一个对抽象接口的抽象实现,而抽象实现中又包含一个具体实现接口(叫做“实现者”)的引用,通过这个引用给抽象实现提供能力。 2.实例 假设我们要创建一个具有持久化能力的类,其对象实例的持久化可能是通过数据库,也可能是通过文件系统进行。通常的实现是通过继承这个类分别完....

文章 2017-11-26 来自:开发者社区

【HeadFirst 设计模式学习笔记】 20 解释者(Interpreter)模式拾零

1.概述 这个模式是在不能叫做模式,它的作用是实现一种语言规范的解释器,比如罗马数字解释器。 2.实例 我们在这创建一个决策器。通过构建有两种语言,OR和AND,可以想象为一个单位,领导给出一些决策意见,比如谁或者谁提拔,谁和谁提拔等(这里面有嵌套),然后存入这个决策器中。主程序通过输入几个人名的组合得出一个是不是可能这些人被提拔的决策。 首先,我们对决策器中的语言进行一个抽象: 里面提...

文章 2017-11-26 来自:开发者社区

【HeadFirst 设计模式学习笔记】21 备忘录(Memento)模式拾零

1.概述 这个模式也比较简单,书中没有提到。用于恢复上次操作结果等场景,比如数据库回滚等。这个模式有三个参与的实体: Originator:知道如何保存自己的对象。 Caretaker:知道Originator何时以及为何保存并恢复自己的对象。 Memento:由Originator进行读写,并且Caretaker完成维护的对象 2.实例 首先,我们创建一个Memento: 里...

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。