代理模式(Proxy)一、 什么是代理模式先来看看官方的说法,代理模式就是为其他对象提供一种代理,以控制对这个对象的访问。 看来这个官方的说法的确有点官方,看了还是让人感觉不点不知所措,还是不明白代理模式是什么,究竟是用来做什么的。 其实代理这个名词,对于我们来说其实并不陌生,生活中有很多关于代理的例子。例如校园代理等,就以校园代理来讲,这个校园代理就是为他对应的上司的作代理,而这个校园代理的...
分类:
移动开发 时间:
2014-06-11 00:26:43
阅读次数:
306
中介者模式:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显示的相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。简单描述:1个抽象Colleague,其派生多个具体ConcreteColleague,每个具体ConcreteColleague都认识一个具体中介者。他们发送消...
分类:
编程语言 时间:
2014-06-10 00:55:22
阅读次数:
390
本系列主要记录设计模式的意图是什么,它要解决一个什么问题,什么时候可以使用它;它是怎样解决的,掌握它的结构图,记住它的关键代码;可以想到至少两个它的应用实例,一个生活中的,一个软件中的;这个模式的优缺点是什么,其有哪些使用场景,在使用时要注意什么。尊重作者,转载请注明晔阳的Bloghttp://bl...
分类:
其他好文 时间:
2014-06-09 18:57:13
阅读次数:
174
组合模式:将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。简单描述: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
命令模式:将一个请求封装成一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日记,以及支持可撤销的操作。简单描述:1个Receiver,知道如何执行命令。1个抽象命令,持有一个Receiver的引用,命令的执行则调用Receiver的对应方法(具体命令具体调用相应的方法)。1个I...
分类:
编程语言 时间:
2014-06-09 13:15:24
阅读次数:
363
备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。简单描述:一个Memento类,代表Originator中要备份的属性。Originator负责生成备份和还原备份,CareTaker负责存储备份大话设计模式中的截图:例...
分类:
编程语言 时间:
2014-06-08 19:32:19
阅读次数:
286
概念
代理模式(Proxy),为其他对象提供一种代理以控制对象的访问。模式结构一个是真正的你要访问的对象(目标类),一个是代理对象,真正对象与代理对象实现同一个接口,先访问代理类再访问真正要访问的对象。代理模式UML图代码实战
//代理模式classProxy:IGiveGift//让...
分类:
其他好文 时间:
2014-06-08 19:03:48
阅读次数:
238