摘要: 观察者模式是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题 阅读全文
posted @ 2017-10-20 09:24 js王 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 模板方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。 模板方法模式的结构 模板方法模式是所有模式中最为常见的几个模 阅读全文
posted @ 2017-10-20 08:49 js王 阅读(1415) 评论(0) 推荐(0) 编辑
摘要: 策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。 策略模式的结构 策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的 阅读全文
posted @ 2017-10-19 16:20 js王 阅读(291) 评论(0) 推荐(0) 编辑
摘要: 桥梁模式是对象的结构模式。又称为柄体(Handle and Body)模式或接口(Interface)模式。桥梁模式的用意是“将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化”。 桥梁模式的用意 桥梁模式虽然不是一个使用频率很高的模式,但是熟悉这 阅读全文
posted @ 2017-10-19 10:48 js王 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 门面模式是对象的结构模式,外部与一个子系统的通信必须通过一个统一的门面对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。 医院的例子 现代的软件系统都是比较复杂的,设计师处理复杂系统的一个常见方法便是将其“分而治之”,把一个系统划分为几个较小的子系统。如果把医院作为一个子系统,按照部门职 阅读全文
posted @ 2017-10-19 10:11 js王 阅读(1177) 评论(1) 推荐(0) 编辑
摘要: 代理模式是对象的结构模式。代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。 代理模式的结构 所谓代理,就是一个人或者机构代表另一个人或者机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 代理模式类图如下: 阅读全文
posted @ 2017-10-19 09:49 js王 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 装饰模式又名包装(Wrapper)模式。装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。 装饰模式的结构 装饰模式以对客户透明的方式动态地给一个对象附加上更多的责任。换言之,客户端并不会觉得对象在装饰前和装饰后有什么不同。装饰模式可以在不使用创造更多子类的情况下,将对象的功能加 阅读全文
posted @ 2017-10-19 08:47 js王 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。 适配器模式的用途 用电器做例子,笔记本电脑的插头一般都是三相的,即除了阳极、阴极外,还有一个地极。而有些地方的电源插座却只有两极,没有地极。电源插座与笔记本电脑的电源插头不匹配使得 阅读全文
posted @ 2017-10-16 09:29 js王 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。 单例模式的结构 单例模式的特点: 单例类只能有一个实例。 单例类必须自己创建自己的唯一实例。 单例类必须给所有其他对象提供这一实例。 饿汉式单例类 上面的例子中,在这个类被加载时,静态变 阅读全文
posted @ 2017-10-13 14:23 js王 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 场景问题 举个生活中常见的例子——组装电脑,我们在组装电脑的时候,通常需要选择一系列的配件,比如CPU、硬盘、内存、主板、电源、机箱等。为讨论使用简单点,只考虑选择CPU和主板的问题。 事实上,在选择CPU的时候,面临一系列的问题,比如品牌、型号、针脚数目、主频等问题,只有把这些问题都确定下来,才能 阅读全文
posted @ 2017-10-13 13:13 js王 阅读(231) 评论(0) 推荐(0) 编辑