
设计模式
文章平均质量分 78
miya
本人是个爱好编程,生活态度积极乐观的人
展开
-
设计模式——六大设计原则
<br /> 第一次接触设计模式大概在一年以前,当时了解到的都是一些零散的模式,是配合SSH框架一下看的,不久以后,得到张逸先生对我们设计模式的指导,感触颇深,遗憾的是,我们经验不足,不足以将其很好的用于我们自己的系统中,何况,对目前的我们来说,公司的项目,是不会拿给我们设计的。时间一长,也就忘了,最近感觉该再回过头去看看设计模式了,又恐时间长了,没来得及用,又被遗忘,故采纳了张逸先生给的建议,将其写下来......言归正传,先写写设计模式基础,即六大设计原则:<br />1.单一职责原则<br />详细定原创 2010-12-30 00:56:00 · 1454 阅读 · 0 评论 -
八 设计模式之中介者模式
<br />定义 用一个中介对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使其耦合松散,而且可以独立地改变它们之间的交互<br />类图<br /><br />通用代码 //通用抽象中介者 public abstract class Mediator { //定义同事类 protected ConcreteColleague1 c1; protected ConcreteColleague2 c2; //注入同事类 public ConcreteColleague1 g原创 2011-01-21 23:55:00 · 397 阅读 · 0 评论 -
十 设计模式之责任链模式
<br /><br />定义 <br />使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,知道有对象处理它为止<br /><br />类图<br /><br /> <br /> <br /><br />通用代码<br />抽象处理者 public abstract class Handler { private Handler nextHandler; public final Response handleMessage(Re原创 2011-01-24 12:39:00 · 451 阅读 · 0 评论 -
十五 设计模式之组合模式
<br /><br /> 定义 将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性 <br /><br /><br /><br /> 类图<br /><br /><br /><br /><br />通用代码<br />//抽象构件 public abstract class Component { //个体和整体都具有的共享 public void operation(){ //doSomething } } //树枝构件原创 2011-01-25 09:15:00 · 415 阅读 · 0 评论 -
六 设计模式之代理模式(或称委托模式)
<br />定义 为其它对象提供一种代理以控制对这个对象的访问<br />类图<br /><br /><br /><br /><br /><br />通用代码 抽象主题类 public interface Subject { public void request(); } 真实主题类 public class RealSubject implements Subject { @Override public void request() { //具体业务处理 } } 代原创 2011-01-20 23:26:00 · 10270 阅读 · 1 评论 -
七 设计模式之原型模式
<br />定义 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象<br />类图<br /><br /><br /><br />通用代码 public class PrototypeClass { @Override public PrototypeClass clone(){ PrototypeClass prototypeClass = null; try{ prototypeClass = (PrototypeClass)super.clone(); }原创 2011-01-20 23:30:00 · 584 阅读 · 0 评论 -
十八 设计模式之备忘录模式
定义 在不破坏封装性的前提下,捕获一个对象内部状态,并在该对象之外保存这个状态。这样以后就 可将该对象恢复到原先保存的状态类图通用代码//发起人角色public class Originator { //内部状态 private String state="init"; public String getState(原创 2011-06-20 12:29:00 · 412 阅读 · 0 评论 -
二十 设计模式之状态模式
定义 当一个对象内在状态改变时允许其改变行为,这个对象看起来像改变了其类类图通用代码//抽象环境角色public abstract class State { //定义一个环境角色,提供子类访问 protected Context context; public Context getContext() {原创 2011-06-20 12:35:00 · 462 阅读 · 0 评论 -
十九 设计模式之访问者模式
定义 封装一些作用于某种数据结构中的各元素操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作类图通用代码//抽象元素public abstract class Element { //定义业务逻辑 public abstract void doSomething(); //允许谁来访问 p原创 2011-06-20 12:33:00 · 465 阅读 · 0 评论 -
二十二 设计模式之享元模式
定义 使用共享对象可有效地支持大量的细粒度的对象类图通用代码//抽象享元角色public abstract class FlyWeight { private String intrinsic; protected final String extrinsic; public FlyWeight(String _extrinsic){原创 2011-06-20 12:40:00 · 595 阅读 · 0 评论 -
十六 设计模式之观察者模式(发布订阅模式)
<br /><br /><br />定义 定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于<br />它的对象都会得到通知并被自动更新<br /> 类图<br /><br /><br /><br /><br /> 通用代码<br /> <br />//被观察者 public abstract class Subject { //定义一个观察者数组 private Vector<Observer> obsVector = new Vector<Observer>();原创 2011-01-25 09:17:00 · 564 阅读 · 0 评论 -
十四 设计模式之迭代器模式
<br /><br />定义 提供一种方法访问一个容器对象中各个元素,而又不需要暴露该对象的内部细节<br />类图<br /><br /><br /><br /><br /><br /><br />通用代码<br />public interface Iterator { public Object next(); public boolean hasNext(); public boolean remove(); } //具体迭代器 public class ConcreteI原创 2011-01-25 09:11:00 · 344 阅读 · 0 评论 -
十三 设计模式之适配器模式
<br /><br />定义<br />将一个类的接口变换成客户端期待的另一种接口,从而使原本因接口不匹配而无法一起工作的两个类能够一起工作<br /> <br /><br />类图<br /><br /> <br /><br />通用代码<br /> <br />//目标角色 public interface Target { //目标角色有自己的方法 public void request(); } //目标角色实现类 public class ConcreteTarget impleme原创 2011-01-25 09:08:00 · 385 阅读 · 0 评论 -
一 设计模式之单例模式
<br />定义:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例<br /> <br />类图<br /><br /><br /> <br />public Class Singleton{ private static final Singleton singleton = new Singleton(); //限制产生多个对象 private Singleton(){ } //通过该方法获得实例对象 public static Singleton getSingleton(原创 2011-01-18 00:43:00 · 321 阅读 · 0 评论 -
五 设计模式之建造者模式
<br />定义 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示<br />类图<br /><br /><br /><br />通用代码 //产品类 public class Product { public void soSomething(){ //独立业务处理 } //抽象建造者 public abstract class Builder { //设置产品的不同部分,以获得不同的产品 public abstract void setPart(); //原创 2011-01-19 22:25:00 · 325 阅读 · 0 评论 -
二 设计模式之工厂方法模式
<br />定义 : 定义一个用于创建对象的接口,让子类决定实例化哪一个类。工程方法使一个类的实例化延迟到其子类<br />类图<br /> <br /><br /><br />通用代码<br /> <br />//抽象产品类 Public abstract class Product{ Public void method1(){ //业务逻辑处理 } //抽象方法 Public abstract void method2(); } //具体产品类 Public class Co原创 2011-01-19 00:22:00 · 366 阅读 · 0 评论 -
四 设计模式之模板方法模式
<br />定义:定义一个操作中的算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤<br />类图<br /><br /> <br /> <br />通用代码 抽象模板类 Public abstract class AbstractClass{ //基本方法 Protected abstract void doSomething(); //基本方法 Protected abstract void doAnything(); Public vo原创 2011-01-19 22:20:00 · 319 阅读 · 0 评论 -
设计模式学习笔记前言
<br />渐渐的又开始看了一些设计模式,这次的参考资料是秦波先生的《设计模式之禅》,将这本书与之前阅读过的Alan Shalloway《设计模式解析》以及张逸先生的《设计精要与模式》对比起来,发现各种书籍各有所长,想到张逸先生曾经说过的间断总结,所以从今天开始,我将会以秦波先生的《设计模式之禅》为主,将其学到的,记下来,便于总结...有时候不得不承认学到的一些知识,即使在当时的环境下理解得够清楚了,但是,一段时间之后,一旦没有接触,便会忘记...鉴于此种情况,加上公司需要我们谈谈一些学习心得,所以从今天开原创 2011-01-18 00:36:00 · 349 阅读 · 0 评论 -
三 设计模式之抽象工厂模式
<br />定义<br />为创建一组相关或相互依赖的对象提供一个接口,而且无需指定它们的具体类<br />类图<br /><br /><br /><br /><br /> <br />抽象产品类 Pbulic abstract class AbstractProductA{ //每个产品共有的方法 Public void shareMethod(){} //每个产品相同方法,实现不同 Public abstract void dosomething(){ }} 产品A1的实现类 Publi原创 2011-01-19 00:26:00 · 311 阅读 · 0 评论 -
十二 设计模式之策略模式
<br />定义 定义一组算法,将每个算法封装起来,并且使它们之间可以互换<br /> <br />类图<br /><br /> <br /><br />通用代码<br />//抽象策略角色 public interface Strategy { //策略模式的运算准则 public void doSomething(); } //具体策略1 public class ConcreteStrategy1 implements Strategy { @Override public v原创 2011-01-24 12:53:00 · 418 阅读 · 0 评论 -
九 设计模式之命令模式
<br />定义 将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能<br />类图<br /> <br /> <br /> <br />通用代码 通用Receiver类 public abstract class Receiver { //抽象接收者,定义每个接受者都必须完成的业务 public abstract void doSomething(); } 具体Receiver类 public class Concr原创 2011-01-21 23:57:00 · 524 阅读 · 0 评论 -
十一 设计模式之装饰模式
<br /><br />定义<br />动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式相比生成子类更为灵活<br />类图<br /> <br /><br /> <br />通用代码 抽象构件 public abstract class Component { public abstract void operate(); } 具体构件 public class ConcreteComponent extends Component { @Override publi原创 2011-01-24 12:44:00 · 445 阅读 · 0 评论 -
十七 设计模式之门面模式
定义 要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用类图 通用代码//子系统public class ClassA { public void doSomethingA(){ //业务逻辑}}public class ClassB { public原创 2011-06-20 12:26:00 · 394 阅读 · 0 评论