代理模式是比较常见的一种模式,我们平常接触的比较多,比如正向代理和反向代理。正向代理的代理服务器是和客户端的网络在一起,由代理服务器转发请求和接受结果,比如有的公司的服务器,会过滤掉对外部网络的访问请求;反向代理的代理服务器接受来自客户端的请求,决定讲请求转发给哪个内部服务器进行处理,反向代理的服务...
分类:
其他好文 时间:
2014-06-02 09:39:00
阅读次数:
278
门面模式要求一个子系统的外部和内部的通信必须通过通过一个门面对象进行。在门面模式中,通常只需要一个门面类,并且门面类只有一个实例,也就是说他是一个单例类。当然这并不意味着,整个系统只能有一个门面类,而仅仅说每个子系统只能有一个门面类。1.
什么情况下使用该模式:A: 为了给一个复杂的系统提供一个简单...
分类:
其他好文 时间:
2014-06-02 09:36:56
阅读次数:
186
四、Chain of
Responsibility(责任链)描述:一系列类(classes)试图处理一个请求request,这些类之间是一个松散的耦合,唯一共同点是在他们之间传递request.
也就是说,来了一个请求,A类先处理,如果没有处理,就传递到B类处理,如果没有处理,就传递到C类处理,就这...
分类:
其他好文 时间:
2014-06-02 09:19:29
阅读次数:
303
桥梁模式的用意是:将抽象化和实现化惊醒脱耦,使得两者可以独立的变化。所谓脱耦就是将抽象化和实现化之间的耦合解脱开,也就是强关联变成若关联。强关联就是在编译期就已经确立的,无法在运行时改变;弱关联就是可以动态的确定并且运行期可以改变的关联。继承是强关联,合成、聚合是弱关联。类图:示意性代码:packa...
分类:
其他好文 时间:
2014-06-02 08:57:44
阅读次数:
212
在软件系统中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合,比如要对行为进行“记录、撤销/重做、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将“行为请求者”与“行为实现者”解耦?将一组行为抽象为对象,实现二者之间的松耦合。这就是命令模式(Command
Pattern)————题记
设计模式
命令模式:将“请求”封装成对象,以便使用不同...
分类:
其他好文 时间:
2014-06-02 04:59:53
阅读次数:
398
七、Strategy(策略模式)描述:定义了一系列的算法,将每一种算法封装起来并可以相互替换使用,策略模式让算法独立于使用它的客户应用而独立变化。优点:各个部分之间是弱连接
的关系,弱连接的特性使软件具有更强的可扩展性 ,易于维护 ;更重要的是,它大大提高了软件可重用性 。例子:举例(TreeSet...
分类:
其他好文 时间:
2014-06-02 02:09:10
阅读次数:
266
适配器模式主要是为了解决接口不符合系统需要的问题。分成类的适配器和对象的适配器。1.
类的适配器:示意性代码:package com.javadesignpattern.Adapter;public interface Target {
public void sampleOp...
分类:
其他好文 时间:
2014-06-01 23:59:18
阅读次数:
427
现实生活中,我们每个人的能力是有限的,总有一些事情让我们束手无策,我们就可以找别人来帮忙,帮我们的这个人称之为代理。下面让我们看一下代理模式的概念:
代理模式(Proxy):为其他对象提供一种代理以控制对这个对象的访问。
根据爱因斯坦的相对性,凡事有利必有弊,做事要有度。代理模式运用的好就可以节省内存,保障了用户安全,方便调度。运用的不好,就成了九曲十八弯,费力不讨好。不过相信一点,存在必合理,虽然现在我们只能它有一个初步的了解,不怕不知道,就怕不知道,总有一天会有它的用武之地!...
分类:
其他好文 时间:
2014-06-01 18:13:07
阅读次数:
352
装饰模式的目的是为了给一个对象动态的增加一些功能。装饰对象和被装饰的对象实现同一个接口,装饰对象持有被装饰对象的实例。类图:示意性代码:package
com.javadesignpattern.Decorator;public interface Component { void s...
分类:
其他好文 时间:
2014-06-01 17:06:22
阅读次数:
338