用途 解释器模式 (Interpreter) 定义一个语言,定义它的文法的一种表示。并定义一个解释器,这个解释器使用该表示来解释语言中的句子。 解释器模式是一种行为型模式。结构 图-解释器模式Context : 包含解释器之外的一些全局信息。classContext{privateString...
分类:
编程语言 时间:
2015-01-20 20:02:58
阅读次数:
126
用途 观察者模式 (Observer) 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。 观察者模式是一种行为型模式。结构 图-观察者模式结构图Subject : 主题类,保存所有订阅此...
分类:
编程语言 时间:
2015-01-20 17:35:40
阅读次数:
239
用途 迭代器模式 (Singleton) 提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。 迭代器模式是一种行为型模式。结构 图-迭代器模式结构图Iterator : 定义访问元素的接口。interfaceIterator{publicObjectfirst();pub...
分类:
其他好文 时间:
2015-01-20 15:25:30
阅读次数:
139
一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式...
分类:
其他好文 时间:
2015-01-12 17:09:34
阅读次数:
249
结构型设计模式主要是从结构上解决代码的耦合问题。包含一下7种模式:Adapter,Proxy,Composite,Bridge,flyweight,Facade,Decorator。结构型中包含7个模式,有点多,不过比行为型模式少,但也容易忘记,加点魔术粉让我们忘不了。
首先,我们要先知道这7个模式都是什么意思,有什么用。
一、概念
1、Adap...
分类:
其他好文 时间:
2014-12-30 17:17:22
阅读次数:
275
在上一篇博客中,我已经将行为型模式分为了四类,现在就总结一下第一类——算法,用到算法的模式包含策略模式,以及模板方法。
一、概念
1、Strategy
(1)官方解释
它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。
(2)类图
(3)个人理解
策略就是一种方法,做一件事情有多种方法,方...
分类:
编程语言 时间:
2014-12-30 11:49:44
阅读次数:
166
我们知道,设计模式分别是六个原则和三大模式,分别可以分为创建型模式、结构型模式、行为型模式,其中结构型模式包括:适配器模式、装饰模式、桥接模式、组合模式、享元模式、代理模式、外观模式。在这里,我们就说一下结构型模式。
适配器模式(Adapter):
定义:将一个类的接口转换成客户喜欢的另外一个接口,Adapter模式使得原本由于接口不兼容而不能一起工作的那些类一起工作。...
分类:
其他好文 时间:
2014-12-29 21:30:50
阅读次数:
223
拖拖拉拉的终于完成了行为型模式的总结,行为型模式一共十一个那么多,一直在想办法梳理知识,想要让自己印象深刻,但是又不知道了从哪里下手。回过头来看米语录,解决了我这个问题。
对待自己的知识要让他经历下面几个过程,罗列,比较,抽象。不要只要简单地把知识罗列出来。我知道自己为什么慢了,因为我连罗列都不肯花时间去做,怎么会有后面的提高呢?现在不肯花时间,以后就会花双倍的时间去弥补,出...
分类:
其他好文 时间:
2014-12-29 12:08:17
阅读次数:
175
学行为型模式的时候,觉得备忘录模式与命令模式差不多,今天就将两者进行对比,加深一下印象。
一、介绍
1、备忘录模式
(1)Memento:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将对象恢复到原先保存的状态。
(2)类图
(3)个人理解
我们日常生活中的备忘录,就是保存自己的记事,下...
分类:
其他好文 时间:
2014-12-24 18:06:49
阅读次数:
158
一、概述
在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样就可以在以后将对象恢复至原先保存的状态。它是一种对象行为型模式。
二、适用场景
1、类似于撤销功能的实现,保存一个对象在某一时间的部分状态或全部状态,当以后需要它时就可以恢复至先前的状态。
2、 对对象历史状态的封装、避免将对象的历史状态的实现细节暴露给外界。...
分类:
编程语言 时间:
2014-12-24 00:04:08
阅读次数:
213