设计模式
karl1235
这个作者很懒,什么都没留下…
展开
-
责任链模式
概念:将多个任务单元组合成一条任务链,通过对链条的操作实现递归调用任务单元,并实现任务单元间的嵌入操作 要点: 1、开发任务单元,封装业务逻辑 2、将多个任务单元组合成任务链 3、开发链执行单元 4、递归调用 实例:我首先定义了责任链模式的各种接口和一些实现类,然后打成jar包,后面多个项目就可以在此jar包基础之上实现责任链模式 1、首先定义链条(接口+抽象类),实现类可以有多种,原创 2012-05-02 18:04:31 · 649 阅读 · 0 评论 -
访问者模式
定义: 定义一个访问者,去访问集合中不同类型的对象;集合中的每个对象都被定义成被访问者 要点: 集合中的每个对象都必须符合被访问者规范 实例: 1.定义被访问者行为规范 public interface Visible { public void accept( Visitor visitor ) throws Exception; } 2.定义被访问者类型,这里定义了st原创 2012-07-15 18:29:38 · 604 阅读 · 0 评论 -
备忘录模式
定义: 定义一个备忘录,保存现有的数据,下次需要的时候直接从备忘录里面读取 要点: 在备忘录里面保存现有数据 实例: 1.定义pojo数据类user和webform public class User { private String userName; private String userAddress; private String userEmail; pub原创 2012-07-15 18:40:28 · 553 阅读 · 0 评论 -
观察者模式
定义: 定义观察者和被观察者两种角色,当被观察者属性发生变化的时候,观察者会给予响应. 要点: (1)定义观察者和被观察者两种角色 (2)给被观察者绑定观察者 (3)当被观察者属性发生变化的时候,触发观察者的响应事件 实例: 1.定义被观察者类型 import java.util.Observable; public class Product extends Observabl原创 2012-07-15 19:01:21 · 687 阅读 · 0 评论 -
代理模式
定义: 消费者通过代理对象间接与目标对象通信,由于代理对象符合目标对象的行为规范,所以这个过程相对消费者来说是透明的. 要点: 代理对象和目标对象要符合相同的行为规范 实例: 以一个HttpRequest请求为例,通过代理request控制不同user对r目标request中port,url,header的访问权限 1.定义HttpRequest规范 /** * * 定义HTT原创 2012-07-15 18:02:38 · 598 阅读 · 0 评论 -
装饰器模式
定义: 动态地给对象添加一些额外的职责。 要点: 1、定义接口 2、定义普通实现类 3、定义装饰器角色 实例: /** * * 说话统一接口 * * @author ypqiao * */ public interface Say { /** * 根据str返回相应的说话内容 * @param str * @return * @throws原创 2012-05-11 10:36:17 · 603 阅读 · 0 评论 -
门面模式
定义: 通过一个门面来封装对多个子系统的调用行为,实现客户消费系统和多个子系统之间的解耦。 要点: 定义门面类封装对多个子系统的调用行为 实例: 这个实例从类结构上看跟装饰模式一样,但心里要清楚,这两种模式解决的问题侧重点是不一样的。装饰器模式旨在在系统原功能上增加额外的功能;门面模式旨在实现客户系统和多个子系统间的解耦。 public interface Car { publi原创 2012-05-12 00:50:35 · 611 阅读 · 0 评论 -
桥接模式
概念: 将业务的抽象和实现分离,使模块之间的耦合发生在抽象层,与实现无关。 要点: 1、定义抽象(抽象类或接口)和实现 2、在抽象层实现低耦合 实例: 定义两组工具,一组用来画线,另一组用来画图形。每组工具都采用抽象+实现的方式来编写代码,其中画图形工具会引用画线工具。 1、定义一个坐标点类 /** * 坐标点类 * * @author ypqiao * */ pu原创 2012-05-08 15:07:42 · 2356 阅读 · 0 评论 -
适配器模式
概念: 将源接口的调用方式转化为目标接口调用方式 要点: 1、定义目标接口 2、定义源接口 3、定义源接口实现 4、定义适配器,封装源接口实现行为 5、定义客户端调用 实例: 1、目标接口 /** * USB2接口 * * @author issuser * */ public interface USB2 { public void say_usb2()原创 2012-05-07 10:58:32 · 625 阅读 · 0 评论 -
构建者模式
概念: 即采用构建者和构建工具两个角色来封装复杂对象及其子对象的创建过程(子对象一般都具有多边性)。 要点: 1、 创建构建工具(接口+实现类),封装对象和子对象创建过程 2、创建构建者,封装创建工具的创建细节,供消费者使用 实例: 1、pojo类 /** * 汽车实体类 * 简单起见,每个汽车封装了两个复杂对象引擎和轮子 * 引擎和轮子都具有复杂性和多变性两个特点 *原创 2012-05-03 23:16:19 · 1420 阅读 · 2 评论 -
单例模式
定义: 整个类只提供一个实例 要点: 1、 类自己创建:构造方法为private 2、类自己引用,并提供公开的访问入口: 采用一个private的类变量引用,并提供一个public的get方法 3、 只创建 一次:在get方法里逻辑判断 适用情形:实例创建过程比较复杂或实例确实只要一个就够了 案例:下面是一个缓存池的例子 public class Cach { // 私有类变量原创 2012-05-02 17:29:40 · 630 阅读 · 0 评论 -
中介者模式
定义: 定义一个中介者,负责成员之间的复杂交互,以此减轻成员端的编程负担。 要点: 定义好中介者 实例:以一个聊天室为例,中介者负责把 每个成员的发话内容,打印在每个成员的聊天面板上 1. 定义聊天成员抽象类 public interface ChatColleague { /** 向外部发送消息 **/ public void sendMessage( String mess原创 2012-07-16 20:40:07 · 635 阅读 · 0 评论