基础不牢,地动山摇!

设计模式之二十四:访问者模式(Visitor)

访问者模式: 定义了一个作用于一个类的一些操作,访问者模式允许在不改变类的前提下增加一些操作。 Represent an operation to be performed on the elements of an object structure. Visitor lets you def...

2015-07-01 15:13:01

阅读数:853

评论数:1

设计模式之二十三:解释器模式

解释器模式: 给定一个语言,定义了它的文法的一种表示,并定义了一个解释器,这个解释器使用该表示来解释语言中的句子。 Given a language, define a representation for its grammar along with an interpreter that ...

2015-06-30 16:28:46

阅读数:743

评论数:0

设计模式之二十二:享元模式(FlyWeight)

享元模式: 使用共享技术有效地支持大量细粒度的对象。 Use sharing to support large numbers of fine-grained objects efficiently. 这个设计模式和它的名字一样核心是为了共享代码。UML图: 主要包括: FlyWeight...

2015-06-30 10:37:44

阅读数:927

评论数:0

设计模式之二十一:中介者模式(Mediator)

中介者模式:定义了一个对象,用来封装一系列对象的交互。中介者模式通过使对象之间不必显式引用降低了对象之间的耦合,并且允许你独立改变它们之间的交互。中介者模式就是将对象之间的交互封装在了一个独立的对象中,这个独立的对象用来控制对象之间的交互行为,所以这个对象还是蛮复杂的。UML类图: 主要包括: ...

2015-06-28 13:25:36

阅读数:1066

评论数:0

设计模式之二十:责任链模式(Chain of Responsibility)

感觉这个设计模式和组合模式一样是一种很巧妙的设计模式,在需要使用它的地方如果不使用这种设计模式代码会变的很复杂,但是这种设计模式的基本原理又是很简单的。责任链模式: 通过使多个对象都有机会来处理请求的方式避免了请求的发送者和接收者之间的耦合。将接收者组织成链式的结构这样可以将请求沿着这条链进行传...

2015-06-27 16:06:57

阅读数:719

评论数:0

设计模式之十九:命令模式(Command)

命令模式:将一个请求封装成一个对象,从而允许用不同的请求参数化客户,对请求进行排序或记录日志,并且支持撤销操作。UML图: 主要包括: Command:声明了一个操作的接口 ConcreteCommand:绑定了一个Receiver和一个行为,通过相关联的Receiver对象实现了了execut...

2015-06-27 15:02:39

阅读数:721

评论数:0

设计模式之十八:桥接模式(Bridge)

桥接模式: 将抽象部分和它的实现部分相分离开来,以使它们可以单独地变化。UML图: 主要包括: Abstraction:定义了抽象部分的接口,操作一个实现部分对象的引用。 RefinedAbstraction:继承自抽象部分的类。 Implementor:实现部分的接口。 ConcreteIm...

2015-06-24 22:38:16

阅读数:793

评论数:0

设计模式之十七:单例模式(Singleton)

单例模式: 确保一个类只有一个实例化的对象并且提供了一个访问这个对象的方法。 UML图: 主要包括: Singleton(LoadBalancer):定义了一个操作唯一的对象的方法;负责创建和操作这个唯一的对象。 C++中实现单例模式是通过静态成员变量和静态方法来...

2015-06-15 17:04:46

阅读数:598

评论数:0

设计模式之十六:迭代器模式(Iterator)

迭代器模式: 提供了一种在不暴漏对象底层细节的情况下顺序访问聚合对象的方法。 Provide a way to access the elements of an aggregate object sequentially without exposing its underlying rep...

2015-06-09 21:04:52

阅读数:718

评论数:0

设计模式之十五:组合模式(Composite)

组合模式: 将对象组合成树形结构来表示部分与整体的关系。组合模式让客户能将单个对象和组合对象统一对待。 Compose objects into tree structures to represent part-whole hierarchies. Composite lets client...

2015-06-09 19:16:16

阅读数:727

评论数:0

设计模式之十四:备忘录模式(Memento)

备忘录模式: 在不破换封装性的前提下,捕获一个对象的内部状态并将这个状态保存到对象外部,这样这个对象之后可以恢复到保存的状态。 Without violating encapsulation, capture and externalize an object’s internal state...

2015-06-09 16:28:54

阅读数:701

评论数:0

设计模式之十三:适配器模式(Adapter)

适配器模式: 将一个类的接口转换成另外一个期望的类的接口。适配器允许接口互不兼容的类一起工作。Convert the interface of a class into another interface clients expect. Adapter lets classes work to...

2015-06-07 12:41:10

阅读数:760

评论数:0

设计模式之十二:状态模式(State)

状态模式: 当一个对象的内部状态发生变化时允许改变它的行为。Allow an object to alter its behavior when its internal state changes. The object will appear to change its class.状态模式...

2015-06-07 11:30:28

阅读数:717

评论数:0

设计模式之十一:抽象工厂模式(Abstract Factory)

抽象工厂模式: 提供了一个创建一系列相关的或相互依赖的对象的接口而不需要具体指定它们的类型。Provide an interface for creating families of related or dependent objects without specifying their co...

2015-06-06 23:49:29

阅读数:927

评论数:0

设计模式之十:观察者模式(Observer)

观察者模式: 在对象之间定义了一种一对多的依赖关系,当一个对象改变它的状态时,所有依赖它的对象会自动接收通知并更新自己的状态。Define a one-to-many dependency between objects so that when one object changes state...

2015-06-06 21:52:54

阅读数:760

评论数:0

设计模式之九:建造者模式(Builder)

建造者模式: 将一个复杂对象的建造过程和它的表示分离开来,这样相同的建造过程可以创建不同的表示。Separate the construction of a complex object from its representation so that the same construction ...

2015-06-06 11:28:55

阅读数:875

评论数:0

设计模式之八:外观模式(Facade)

外观模式: 为子系统中的一系列接口提供了一个统一的界面。外观模式定义了一个高层次的接口以使子系统更加容易使用。Provide a unified interface to a set of interfaces in a subsystem. Façade defines a higher-l...

2015-06-06 10:42:46

阅读数:781

评论数:0

设计模式之七:模板方法模式(Template Method)

模板方法模式: 定义了一个算法的基本操作骨架,并将算法的一些步骤延迟到子类中来实现。模板方法模式让子类在不更改算法结构的前提下可以重新定义算法的一些步骤。Define the skeleton of an algorithm in an operation, deferring some ste...

2015-06-05 23:33:50

阅读数:831

评论数:0

设计模式之六:原型模式(Prototype)

原型模式:使用原型实例来指定创建对象的种类,并通过拷贝这个对象的值来创建新的对象。Specify the kind of objects to create using a prototypical instance, and create new objects by copying this ...

2015-06-05 23:10:30

阅读数:774

评论数:0

设计模式之五:工厂方法模式(Factory Method)

工厂方法模式:定义了一个创建对象的接口,由子类来决定具体实例化那个对象。工厂方法模式让类的实例化转移到子类中来判断。 Define an interface for creating an object, but let subclasses decide which class to inst...

2015-06-03 15:55:27

阅读数:856

评论数:0

提示
确定要删除当前文章?
取消 删除