设计模式
hujia0815
这个作者很懒,什么都没留下…
展开
-
bridge pattern -- 桥接模式
Bridge模式又称为Handle/Body模式。 在软件系统中,经常面临着“某些结构复杂的对象”的创建工作,由于需求的变化,这些对象经常面临着剧烈的变化,但是他们却拥有比较稳定一致的接口。大部分创建型模式,就是为了解决如何向“客户程序”隔离出“这些易变对象”,从而使得“依赖这些易变对象的客户程序”不随着需求的改变而改变。 实例分析 奔驰汽车的制动距离(从这个速度到完全停止所需要的距原创 2012-12-21 19:26:08 · 348 阅读 · 0 评论 -
adapter pattern--适配器模式
adapter pattern,又称wrapper(包装) pattern 在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但是新环境要求的接口是这些现存对象所不满足的。Adapter设计模式就是为了应对这种“迁移的变化”,以使客户系统既能利用现有对象的良好实现,同时又能满足新的应用环境所要求的接口。 “Convert the interface of a原创 2012-12-21 19:26:06 · 362 阅读 · 0 评论 -
factory mothed pattern--工厂方法模式
factory mothed pattern,称工厂方法模式 首先我们看看Gof怎么定义工厂方法模式的: “Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method lets a class defer instantiatio原创 2012-12-21 19:25:55 · 427 阅读 · 0 评论 -
abstract factory pattern--抽象工厂模式
abstract factory pattern,抽象工厂模式 抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。 Abstract Factory模式存在的意义就是为了创建各系列的对象而存在的。相对Factory Method模式的解决“单个对象”的需求变化,Abstract Factory模式解决“系列相关对象”的需求变化。明确的理解就是抽象工厂模式提供多个产品的原创 2012-12-21 19:25:58 · 446 阅读 · 0 评论 -
decorator pattern -- 装饰模式
Decorator,装饰模式 就是使“对象功能的扩展”能够根据需要来动态地实现,同时可以避免“扩展功能的增多”导致子类数量急剧增多,从而使得任何“功能扩展变化”所产生的负面影响降为最低。 Decorator提供了一种给类增加职责的方法,不是通过继承实现,而是组合。 举例,一辆汽车 1 class car 2 { 3 public: 4 virt原创 2012-12-21 19:26:13 · 536 阅读 · 0 评论 -
composite pattern -- 组合模式
composite pattern称为组合模式 在面向对象的系统中,我们经常会遇到一类具有"容器"特征的对象,即它们在充当对象的同时,又是其他对象的容器。 “Compose objects into tree structures to represent part-whole hierarchies. Composite lets clients treat individual obj原创 2012-12-21 19:26:10 · 432 阅读 · 0 评论 -
prototype pattern--原型模式
prototype pattern称为原型模式 在软件系统中,经常面临着“某些结构复杂的对象”的创建工作,由于需求的变化,这些对象经常面临着剧烈的变化,但是他们却拥有比较稳定一致的接口。Prototype设计模式,就是为了解决如何向“客户程序”隔离出“这些易变对象”,从而使得“依赖这些易变对象的客户程序”不随着需求的改变而改变。 Prototype设计模式指定创建对象的种类,然后通过拷贝这些原原创 2012-12-21 19:26:03 · 422 阅读 · 0 评论 -
builder pattern--建造者模式
buildre pattern称建造者模式 Builder设计模式,提供一种封装机制来隔离出构成复杂对象的各个子对象的变化,从而保持系统中的相对稳定的将这些子对象组合在一起的算法不随着需求的改变而改变。 Separate the construction of a complex object from its representation so that the same constr原创 2012-12-21 19:26:01 · 456 阅读 · 0 评论 -
singleton pattern--单件模式
singleton pattern,又称单件模式,或者单例模式。singleton要求类有且仅有一个实例,并给其他对象提供这一实例。 控制类实例仅有一个,办法有两个: 1.私有化构造函数与copy构造函数,使用一个函数静态变量 1 #include 2 class People{ 3 private: 4 People(std::string nam原创 2012-12-21 19:25:53 · 578 阅读 · 1 评论 -
facade pattern--外观模式
facade pattern称为外观模式下面这幅图很能说明该模式用于什么地方。 A方案的问题在于组件的客户和组件中各种复杂的子系统有了过多的耦合,随着外部客户程序和个子系统的演化,这种过多的耦合面临很多变化的挑战。Facade设计模式则简化外部客户程序和系统间的交互接口,将外部客户程序的演化和内部子系统的变化之间的依赖相互解耦。Provide a unified interface to原创 2013-01-07 18:00:56 · 1135 阅读 · 0 评论 -
flyweight pattern -- 享元模式
flyweight pattern 又称享元模式 Use sharing to support large numbers of fine-grained objects efficiently --- GoF 运用共享技术有效地支持大量细粒度的对象 UnshareConcreteFlyweight:并不是所有的Flyweight具体实现子类都需要被共享的,如果是不能共享的,那么就只能原创 2013-01-09 10:03:18 · 957 阅读 · 5 评论 -
proxy patter --代理模式
对于复杂的软件系统常常有一种处理手法,即增加一层间接层,从而使得系统获得一种更为灵活、满足特定需求的解决方案。在面向对象的系统中,有些对象由于某种原因,比如对象创建的开销很大,或者某些操作需要安全控制,或者需要进程外的访问等,直接访问会给使用者或者系统结构带来很多麻烦。 Proxy设计模式就是在不失去透明操作对象的同时,通过增加一层间接层来管理、控制这些对象特有的复杂性。 // Pro原创 2013-01-11 09:55:46 · 704 阅读 · 2 评论 -
Chain of Responsibility -- 责任链模式
在软件构建构成中,一个请求可能被多个对象处理,但是每个请求在运行时只能有一个接收者,如果显示指定,将必不可少地带来请求发送者与接收者的紧密耦合。COR(Chain of Reposibility)设计模式可以使请求的发送者不需要指定具体的接收者,让请求的接收者自己在运行时决定来处理请求,从而使两者解耦。 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这原创 2013-01-14 09:47:11 · 783 阅读 · 2 评论 -
command pattern -- 命令模式
在软件构建过程中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合,比如需要对行为进行“记录、撤销/重做(undo/redo)、事务”等处理,这种无法抵御变化的紧耦合是不合适的。Command设计模式就是在这种情况下,将“行为请求者”与“行为实现者”解耦,将一组行为抽象为对象,以实现二者之间的松耦合。 “Encapsulate a request as an o原创 2013-01-28 09:51:03 · 569 阅读 · 0 评论