![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 78
return_space
这个作者很懒,什么都没留下…
展开
-
责任链模式
责任链模式:即处理一个逻辑时,请求到一个对象A,对象A处理完毕传递给对象B进行处理,对象B处理完毕传递给对象C进行处理,依次下去,直到传递到最后一个对象处理完毕。 源代码如下: 责任链接口(Handler):定义操作的接口,对外提供。 责任链抽象类(AbstractHandler):定义了一个接口类型对象,主要用来设定和返回责任链的下一个对象。 责任链具体类(MyHandler...原创 2012-04-30 18:07:48 · 267 阅读 · 0 评论 -
观察者模式
观察者模式:有观察者(Observer)和被观察者(Subject)两个类型。 思路:当被观察者发生一些变化(或者行为)时,通知观察者,观察者收到通知后,做一些事情(或者行为)。 被观察者接口:Subject 被观察者的抽象实现:AbstractSubject 被观察者的实现:MySubject 观察者接口:Observer 观察者的实现:ObserverOne、Observer...原创 2012-04-08 15:23:34 · 91 阅读 · 0 评论 -
模板方法模式
模板方法模式:该模式主要思想是,通过抽象类(AbstractClass)对外提供调用入口【templateMethod()】,该入口方法有抽象类实现,抽象类有一些抽象方法【operationOne()、operationTwo()】,是子类【】必须实现的。通过调用入口进行调用子类实现的抽象方法,也可以根据不同的参数调用不同的具体实现类。 示例代码如下: package com.mkf.p...原创 2012-03-30 20:48:47 · 112 阅读 · 0 评论 -
动态代理
动态代理:即JAVA在运行时,动态的创建代理类。 使用动态代理,实现接口与实现类可以不直接发送联系,在运行期,实现动态的关联关系。 主要使用JAVA的反射技术,使用的接口InvocationHandler,代理类Proxy 具体实现的代码如下: package com.mkf.pattern; public interface InterfaceOne { public void...原创 2012-03-30 20:28:05 · 114 阅读 · 0 评论 -
策略模式
策略模式:主要思想就是,为某一件事情,根据不同的原因,产生不同的结果。 事情抽象为接口 InterfaceOne , 根据不同的原因,设计不同的接口实现 ClassOne ClassTwo ClassDefault , 原因为传入的参数,或者是为调用某一个实现,而定义的一组标准代号 one two test。 代码如下: package com.mkf.patte...原创 2012-03-30 20:27:47 · 127 阅读 · 0 评论 -
组合模式
组合模式:核心思想是解决树形结构,将一个复杂的对象简单化。典型的应用就是树形结构的应用。 例:目录结构、组织架构这类问题都可以使用组合模式解决。 具体代码如下: package com.mkf.pattern; import java.util.Enumeration; import java.util.Vector; public class TreeNode { ...原创 2012-03-26 22:36:04 · 73 阅读 · 0 评论 -
桥接模式
桥接模式:如果你了解JDBC的DriverManager设计思想,基本就理解了该模式。 该模式比较复杂,也是抽象层次比较高的模式。 具体思想:有一个接口,该接口有很多种具体实现,客户端调用那一个具体的实现,是通过接口管理器进行分析调用。接口管理器就是客户端与服务端的“桥”。 在JDBC中,DriverManager就是桥,Driver就是接口,各个数据库厂商的实现就是具体实现。 根据使用的...原创 2012-03-26 22:34:19 · 75 阅读 · 0 评论 -
外观模式
外观模式:其实就是对调用复杂的业务进行再一次封装,给客户一个简单接口API。 代码如下: package com.mkf.pattern; public interface InterfaceOne { public void operationOne(); } package com.mkf.pattern.impl; import com.mkf.patter...原创 2012-03-26 22:31:19 · 97 阅读 · 0 评论 -
代理模式
代理模式:即通过代理对象来执行被代理的对象。 代理对象拥有被代理对象的全部功能。 具体代码如下: package com.mkf.pattern; public interface InterfaceOne { public void operation(); } package com.mkf.pattern.impl; import com.mkf.pattern...原创 2012-03-26 22:25:59 · 68 阅读 · 0 评论 -
装饰器模式
装饰器模式:即客户端先调用的接口A,现在客户端需要在调用接口A的时候,期望A有更多的功能。 具体代码如下: package com.mkf.pattern; public interface InterfaceOne { public void operation(); } package com.mkf.pattern.impl; import com...原创 2012-03-26 22:16:45 · 70 阅读 · 0 评论 -
适配器模式
适配器模式:客户端调用某一个类型 Adapter,该类型只有operationTwo(),但是客户端现在希望调用这个类型的同时,也要执行另一个类型 Source 的operationOne(),这时候我们就要使用“适配器模式”。 解决方案为:我们抽象一个接口Target,该接口拥有operationOne()与operationTwo(),将Adapter这个类型继承Source 类型,实...原创 2012-03-25 16:49:56 · 71 阅读 · 0 评论 -
原型模式
原型模式:有一个对象A,在不使用创建的情况下,得到一个与A一样的对象AC。AC即被称为原型。 实现这个模式,一般使用克隆的方式,需要实现Cloneable接口。 也就是使用JAVA的克隆技术。 克隆分为“深克隆”、“浅克隆”。 深克隆需要实现Serializable接口,使用 流 技术。 浅克隆只需要实现Cloneable接口,重写clone方法。 代码如下:请注意观察结果内,数...原创 2012-03-25 15:58:18 · 111 阅读 · 0 评论 -
建造者模式
建造者模式:一般用来创建复杂对象,如:一个类型的对象 A 的属性是其它 N 个对象(B、C、D)组成。 工厂模式关心-----创建一个类型对象A。 建造者模式关心-----创建一个类型对象A的同时,也要关心怎么创建(创建什么样的) A 的属性 (B、C、D), 并且将它们组装成对象A。 具体代码可以参考JDK的...原创 2012-03-25 14:56:35 · 88 阅读 · 0 评论 -
单例模式
单例模式:即在全局范围内,某个类只允许存在一个实例。 具体代码如下: 考虑了多线程、克隆情况 代码增加多线程,主要是为了测试,把多线程去掉就是一个单例。 package com.mkf.pattern; public class Singleton implements Runnable { private static Singleton _instance ...原创 2012-03-25 14:05:57 · 83 阅读 · 0 评论 -
工厂模式
工厂模式:即通过一个类进行创建同一类型的不同对象。 例:有一个接口《InterfaceOne》、两个类《CalssOne》《ClassTwo》,具体代码如下: package com.mkf.pattern; public interface InterfaceOne { public String sayHello(String name); } pa...原创 2012-03-25 12:58:45 · 83 阅读 · 0 评论 -
迭代模式
迭代模式: 此模式的思想是有一个数据集合,我们写出一个算法集合,使用算法集合内的各个算法,来迭代数据集合,获得一些数据。 最常见的就是 List 、Set 等我们常常使用的集合,采用迭代器(Iterator)进行获取集合内的元素。 以下模仿写了一个实现 package com.mkf.pattern; public interface ...原创 2012-04-08 19:22:06 · 180 阅读 · 0 评论