设计模式
五山小新新
希望每天6点下班,然后逛超市,买水果,买牛奶,看美女。
展开
-
设计模式概论
目前原创 2014-08-05 23:49:11 · 674 阅读 · 0 评论 -
设计模式之原型模式
DP书上的定义为:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。其中有一个词很重要,那就是拷贝。可以说,拷贝是原型模式的精髓所在。举个现实中的例子来介绍原型模式。找工作的时候,我们需要准备简历。假设没有打印设备,因此需手写简历,这些简历的内容都是一样的。这样有个缺陷,如果要修改简历中的某项,那么所有已写好的简历都要修改,工作量很大。随着科技的进步,出现了打印设备。我们只需手写一份原创 2014-08-12 20:06:00 · 558 阅读 · 0 评论 -
设计模式之单例模式
单例的一般实现比较简单,下面是代码和UML图。由于构造函数是私有的,因此无法通过构造函数实例化,唯一的方法就是通过调用静态函数GetInstance。原创 2014-08-12 20:41:44 · 613 阅读 · 0 评论 -
设计模式之桥接模式
1、桥接模式(Bridge),将抽象部分与它的实现部分分离,使它们都可以独立地变化。2、什么叫抽象与它的实现分离,这并不是说,让抽象类与其派生类分离,因为这没有任何意义。实现指的是抽象类和它的派生类用来实现自己的对象。由于实现的方式多种,桥接模式的核心意图就是把这些实现独立出来,让它们各自地变化。这样就使得每种实现的变化不会影响其他实现,从而达到应对变化的目的。实现系统可能原创 2014-08-12 22:48:56 · 546 阅读 · 0 评论 -
设计模式之代理模式
1、代理模式(Proxy):为其他对象提供一种代理以控制对这个对象的访问。Subject类定义了RealSubject和Proxy的共用接口,这样就在任何使用RealSubject的地方都可以使用Proxy。UML图如下:原创 2014-08-13 00:34:56 · 473 阅读 · 0 评论 -
设计模式之命令模式
1、命令模式(commond),将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。UML图如下:原创 2014-08-13 08:25:06 · 451 阅读 · 0 评论 -
设计模式之抽象工厂模式
1、抽象工厂模式(Abstract Factory)提高一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。AbstractProductA和AbstractProductB是两个抽象产品,之所以为抽象,是因为它们都有可能有两种不同的实现。2、AbstractFactory是一个抽象工厂接口,它里面应该包含所有的产品创建的抽象方法。而ConcreteFact原创 2014-08-12 17:33:16 · 474 阅读 · 0 评论 -
设计模式之工厂方法模式
简单工厂模式的最大优点在于工厂类中包含了必要的逻辑b原创 2014-08-12 19:37:07 · 519 阅读 · 0 评论 -
设计模式之适配器模式
1、适配器模式(Apater)将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。2、适配器模式主要解决什么问题呢?答:简单地说,就是需要的东西就在面前,但却不能使用,而短时间又无法改造它,于是我们就想办法适配它。3、系统的数据和行为都正确,但接口不符合时,我们应该考虑用适配器,目的是使控制范围之外的一个原原创 2014-08-12 22:12:55 · 560 阅读 · 0 评论 -
设计模式之外观模式
1、为了系统中一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。UML图如下:原创 2014-08-13 00:00:26 · 560 阅读 · 0 评论 -
设计模式之备忘录模式
1、备忘录模式(Memento):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。Originator(发起人):负责创建一个备忘录Memento,用以记录当前时刻它的内部状态,并可以使用备忘录恢复内部状态。Originator可根据需要决定Memento存储Originator的那些内部状态。M原创 2014-08-13 08:47:51 · 518 阅读 · 0 评论 -
设计模式之建造者模式
建造者模式的定义将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示(DP)。《大话设计模式》举了一个很好的例子——建造小人,一共需建造6个部分,头部、身体、左右手、左右脚。与工厂模式不同,建造者模式是在导向者的控制下一步一步构造产品的。建造小人就是在控制下一步步构造出来的。创建者模式可以能更精细的控制构建过程,从而能更精细的控制所得产品的内部结构。下面给出原创 2014-08-12 17:39:50 · 422 阅读 · 0 评论 -
设计模式之访问者模式
我们去银行柜台办业务,一般情况下会开几个个人业务柜台的,你去其中任何一个柜台办理都是可以的。我们的访问者模式可以很好付诸在这个场景中:对于银行柜台来说,他们是不用变化的,就是说今天和明天提供个人业务的柜台是不需要有变化的。而我们作为访问者,今天来银行可能是取消费流水,明天来银行可能是去办理手机银行业务,这些是我们访问者的操作,一直是在变化的。访问者模式就是表示一个作用于某对象结构中的各元素原创 2014-08-13 09:13:35 · 453 阅读 · 0 评论 -
UML类图
在看设计模式的过程中,我看到了很多she原创 2014-08-06 14:31:42 · 713 阅读 · 0 评论 -
设计模式之组合模式
1、组合模式(Composite):将对象组合成树形结构已表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。UML图如下:原创 2014-08-12 22:56:20 · 585 阅读 · 0 评论 -
设计模式之装饰模式
1、动态地给一个对象添加一些额外的职责,就增加工能来说,装饰模式比生成子类更为灵活。Component是定义一个对象接口,可以这些对象动态添加职责。ConcreteComponent是定义了一个具体的对象,也可以给这个对象添加一些职责。Decorator装饰抽象类,继承了Component,从外类来扩展Component类的功能,但对于Component来说,是无需知道Decora原创 2014-08-12 23:44:02 · 600 阅读 · 0 评论 -
设计模式之责任链模式
1、责任链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。UML图如下:原创 2014-08-13 00:57:39 · 487 阅读 · 0 评论 -
设计模式之享元模式
1、享元模式运用共享技术有效地支持大量细粒度的对象。UML图如下:原创 2014-08-13 00:22:22 · 550 阅读 · 0 评论 -
设计模式之迭代器模式
1、迭代器模式(Iterator):提供一种方法顺序访问一个聚合对象中各个元素,而不是暴露该对象的内部表示。2、一个聚集对象,而且不管这些对象是什么都需要遍历的时候,你就应该考虑用迭代器模式。你需要对聚集有多种方式遍历时,可以考虑用迭代器模式。为遍历不同的聚集结构提供如开始,下一个,是否结束,当前哪一项等统一的接口。UML图如下:原创 2014-08-13 08:28:53 · 472 阅读 · 0 评论 -
设计模式之简单工厂模式
1、简单工厂设计模式:也就是说,到底要实例化谁,将来会不会增加实例化的对象,这是很容易发生变化的地方,应该考虑用一个单独的类来做这个创建实例的过程,这就是工厂。UML图如下:原创 2014-08-12 21:36:29 · 442 阅读 · 0 评论 -
设计模式之中介者模式
1、一系列的对象交互。中介者使各对象不需要显示相互引用,从而使其耦合松散,而且可以独立地变化它们之间的交互。UML图如下:原创 2014-08-13 08:46:07 · 481 阅读 · 0 评论 -
设计模式之策略模式
1、策略模式定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。结构图如下:原创 2014-08-13 09:00:07 · 506 阅读 · 0 评论 -
设计模式之模板方法模式
1、定义了一个操作中的算法的骨架,而将一些步骤延迟到了子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。当我们要完成在某一细节层次一致的一个过程或一系列步骤,但某个别步骤在更详细的层次上的实现可能不同时,我们通常考虑用模板方法来处理。UML图如下:原创 2014-08-13 09:05:37 · 521 阅读 · 0 评论 -
设计模式之观察者模式
1、观察者模式又叫做发布-订阅(Publish/Subscribe)模式。观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一主题对象,这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。UML图如下:原创 2014-08-13 08:55:14 · 496 阅读 · 0 评论