一、描述
外观模式又叫门面模式,就是对一个复杂的系统进行包装,该系统对外的接口统一由外观类提供。当一个复杂的系统需要对外提供接口时,就需要将对外提供的接口统一封装在一个外观类中供外系统使用。外观模式最大的特点就是将细粒度的对象包装成粗粒度的对象,应用程序通过访问这个外观对象来完成细粒度对象的调用。这样应用程序只能看到外观对象,而不会看到具体的细节对象,这样无疑会降低应用程序的复杂度,并且提高了程...
分类:
编程语言 时间:
2015-05-02 23:27:48
阅读次数:
212
组合模式Composite组合模式也叫合成模式,又叫树形模式,就是把部分和整体的关系用树形结构来表示,是的客户端对单个对象和组合对象的使用具有一致性,可以看出,这里的部分和整体之间在功能上是类似的,对于这种类似性,通常可以采用继承的方式来实现,根据面向对象的设计原则,尽量使用组合而非继承,因此合成模式也是继承的一个替换方案。1.组合模式结构
组合模式实现原理图
组合模式就是把部分和整体的关系用树...
分类:
其他好文 时间:
2015-05-01 12:09:10
阅读次数:
217
Proxy 代理模式:解耦日常开发中的日志、权限、事务处理等。实现原理:
一个抽象目标类即一个接口,有相关方法名;
一个具体目标类,实现该接口和相关的方法;
一个代理类,调用目标具体类并加上自己需要的逻辑;
客户端实例化代理类,调用代理类的方法
代理模式实现原理图
代理模式代理模式:是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转...
分类:
其他好文 时间:
2015-05-01 10:45:40
阅读次数:
118
门面模式Facade
门面模式:统之间的接口、框架之间的衔接
(1)使用接口的形式来开发,不需要知道接口中内部方法的实现;
(2)门面模式就是为子系统对外提供的一组接口提供一个统一的界面,使得其他系统对该系统的访问都通过这个统一的界面来完成。
(3)当一个负载的系统需要对外提供接口时,就需要将对提供的接口统一封装在外观类里,供外系统使用。
门面模式原理图
不用门面设计模式的...
分类:
其他好文 时间:
2015-04-30 21:58:08
阅读次数:
160
装饰模式可以在不改变一个对象本身功能的基础上给对象增加额外的新行为。装饰模式是一种用于替代继承的技术,它通过一种无须定义子类的方式来给对象动态增加职责,使用对象之间的关联关系取代类之间的继承关系。在装饰模式中引入了装饰类,在装饰类中既可以调用待装饰的原有类的方法,还可以增加新的方法,以扩充原有类的功能。...
分类:
其他好文 时间:
2015-04-30 18:13:45
阅读次数:
133
组合模式又叫做部分-整体模式,使我们在树型结构的问题中模糊简单元素和复杂元素的概念,客户程序可以像处理简单元素一样来处理复杂的元素,从而使得客户程序与复杂元素的内部结构解耦。组合模式可以优化处理递归或分级数据结构。有许多关于分级数据结构的例子,使得组合模式非常有用武之地。...
分类:
其他好文 时间:
2015-04-30 16:14:25
阅读次数:
191
23种GOF设计模式一般分为三大类:创建型模式、结构型模式、行为模式。创建型模式抽象了实例化过程,它们帮助一个系统独立于怎样创建、组合和表示它的那些对象。一个类创建型模式使用继承改变被实例化的类,而一个对象创建型模式将实例化托付给还有一个对象。创建型模式有两个不断出现的主旋律。第一,它们都将关于该系...
分类:
其他好文 时间:
2015-04-29 21:33:15
阅读次数:
127
设计模式分为三类: 创建型,描述如何创建对象,结构型,描述在程序中如何构建类或者对象之间的组合关系,行为型,描述类或对象如何分工合作和交互。 创建型模式: 单例模式、简单工厂模式、工厂方法模式、抽象工厂模式、原型模式、建造者模式 结构型模式:设配器模式、代理模式、组合模式、桥接模式、装饰模式、...
分类:
其他好文 时间:
2015-04-28 17:49:14
阅读次数:
208
package com.eyugame.modle;
/**
* 桥接模式
* @author JYC506
*
*/
public class MyBridge extends Bridge {
@Override
void show() {
this.getSource().show();
}
public static void main(String[] args)...
分类:
其他好文 时间:
2015-04-28 16:16:11
阅读次数:
122
package com.eyugame.modle;
/**
* 代理模式
* @author JYC506
*
*/
public class Proxy implements IFood{
private IFood apple;
public Proxy() {
super();
apple=new Apple();
}
@Override
public v...
分类:
其他好文 时间:
2015-04-28 11:40:43
阅读次数:
83