观察者模式:定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使他们自己能够自动更新自己。简单描述:1个Subject类(可以是抽象类可以是接口),可以有多个具体Subject类(继承抽象Subject),此具体Subject持有...
分类:
编程语言 时间:
2014-06-09 23:02:37
阅读次数:
326
组合模式:将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。简单描述:1个Composite类,里面持有一个容器成员,容器可以存入自身大话设计模式中的截图:代码例子:AbstractComponent类:
1 package com.longs...
分类:
编程语言 时间:
2014-06-09 16:20:55
阅读次数:
382
迭代器模式:提供一个方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示简单描述:提供一个单独的接口遍历聚集类对象中的成员,以实现聚集对象的隐藏和内部数据供外部访问大话设计模式中的截图:我觉得以上面的图示进行编码会暴露ConcreteAggregate中的内部信息(ConcreteIera...
分类:
编程语言 时间:
2014-06-09 15:28:57
阅读次数:
314
单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。简单描述:构造函数设置为private,以禁止外部类实现本类。本类中提供一个静态方法返回一个本例对象(注意多线程中的实现)大话设计模式中的截图:代码例子:Singleton类:
1 package com.longsheng.singl...
分类:
编程语言 时间:
2014-06-09 15:07:30
阅读次数:
376
合成/聚合复用原则:尽量使用合成/聚合,尽量不要使用类继承。桥接模式:将抽象部分与它的实现部分分离,使它们都可以独立变化。解释:即一个系统可以有多种分类实现,把没种分类独立出来,让他们可以独自变化,减少他们之间的耦合。简单描述:1个Abstraction类,持有一个Implementor的引用,其方...
分类:
编程语言 时间:
2014-06-09 14:04:43
阅读次数:
328
抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们的具体类。简单描述:有多种抽象产品,并且每种抽象产品都有多个具体产品。一个抽象工厂,提供多个具体工厂,每个工厂则提供不同种类的具体产品。大话设计模式中的截图:例子代码:AbstractProductA类:1
package co...
分类:
编程语言 时间:
2014-06-08 21:59:56
阅读次数:
376
状态模式:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。简单描述:一个Context类(存有一个抽象状态State引用),调用状态类的方法。State的具体类方法中会判断Context类的状态(如时间),满足一个状态则执行相应动作,否则把Context的State引用指向下...
分类:
编程语言 时间:
2014-06-08 20:53:11
阅读次数:
469
适配器模式:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。简单描述:大话设计模式中的截图:代码例子:AbstractPlayer类:1
package com.longsheng.adapter;2 3 public abst...
分类:
编程语言 时间:
2014-06-08 20:00:30
阅读次数:
324
备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。简单描述:一个Memento类,代表Originator中要备份的属性。Originator负责生成备份和还原备份,CareTaker负责存储备份大话设计模式中的截图:例...
分类:
编程语言 时间:
2014-06-08 19:32:19
阅读次数:
286
建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示简单描述:1个产品类(可有可无,关键是建造流程),1个抽象建造步骤类,多个具体建造子类(不同的类建造不同的产品),1个指挥者(用于规定建造流程),客户端指定需要建造的具体类型,由指挥者建造好之后,建造者子类返回对应产...
分类:
编程语言 时间:
2014-06-08 06:39:08
阅读次数:
296