
设计模式
iteye_14656
这个作者很懒,什么都没留下…
展开
-
设计模式-观察者模式
观察者模式(Observer)定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新。问题:气象观测站要做一个系统,要求如下:根据WeatherData(温度,湿度,气压)生成三个公告板,分别显示当前的状况,气象统计和简单的预报。当WeatherData对象变化时,三个公告栏能实时地更新下面利用JDK自带的类来完成:[c...原创 2014-01-27 15:29:43 · 103 阅读 · 0 评论 -
设计模式-组合模式
组合模式(Composite Pattern) 将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 它使我们在树形结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以像处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦。[img]http://dl2.iteye.com/upload...原创 2014-02-11 14:04:30 · 79 阅读 · 0 评论 -
设计模式-外观模式
外观模式(Facade Pattern)外观模式是软件工程中常用的一种软件设计模式。它为子系统中的一组接口提供一个统一的高层接口。这一接口使得子系统更加容易使用。[code="java"]public class CPU { public void startup(){ System.out.println("cpu startup!"); ...原创 2014-02-11 15:30:21 · 88 阅读 · 0 评论 -
设计模式-享元模式
享元模式(Flyweight Pattern)享元模式,以共享的方式高效地支持大量的细粒度对象。通过复用内存中已存在的对象,降低系统创建对象实例的性能消耗。以黑白五子棋为例[code="java"]public abstract class Chessman { private String color; private int x; private int y...原创 2014-02-12 08:53:22 · 108 阅读 · 0 评论 -
设计模式-代理模式
代理模式(Proxy Pattern)代理模式是软件设计模式中的一种基本技巧。代理模式的主要作用是为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。一般包括三部分:1.抽象角色:真实对象和代理对象的共同接口2.真实角色:真实处理请求的目标对象3.代理角色:代理对象角色内部含...2014-02-18 11:53:27 · 116 阅读 · 0 评论 -
设计模式-责任链模式
责任链模式(Chain of Responsibility Pattern)责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任。举例:学生请假,小病一般班长...2014-02-18 16:33:04 · 74 阅读 · 0 评论 -
设计模式-迭代器模式
迭代器模式(Iterator Pattern)提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示JDK中java.util.Iterator就运用了迭代器模式[code="java"]public interface Iterator { /** * Returns {@code true} if the iteration has ...2014-02-19 11:20:50 · 100 阅读 · 0 评论 -
设计模式-中介者模式
中介者模式(Mediator Pattern)用一个中介对象来封装一系列对象之间的交互,使各个对象不需要显式地引用其他对象实例,从而降低各个对象之间的耦合度,并且可以独立地改变对象间的交互关系。举例:多人聊天,一个人发消息,其他人都能收到(服务器相当于中介者)[code="java"]抽象用户类public abstract class AbstractUser{ pr...2014-02-19 13:45:56 · 77 阅读 · 0 评论 -
设计模式-状态模式
状态模式(State Pattern)当一个对象的内在状态改变时允许改变其行为,这个对象看起来就像是改变了。举例:Word文本编辑器的两种模式:编辑模式、预览模式,在编辑模式下可以添加、修改、删除、查看文档,而在预览模式下只能查看文档。Context类,用于保存当前模式[code="java"]public class Context { //预览模式 publ...原创 2014-02-20 08:56:12 · 82 阅读 · 0 评论 -
设计模式-桥接模式
桥接模式(Bridge pattern)在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?这就要使用Bridge模式。抽象化存在于多个实体中的共同的概念性联系,就是抽象化。作为一个过程,抽象化就是忽略一些信息,从而把不同的实体当做同样的实体对待...原创 2014-02-11 12:31:40 · 100 阅读 · 0 评论 -
设计模式-适配器模式
适配器模式(Adapter pattern)适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题。[img]http://dl2.iteye.com/upload/attachment/0093/7130/c357d41d-8331-3458-8c26-3fc2282e5918.png[/img]电源基类[code="...原创 2014-02-11 09:54:01 · 85 阅读 · 0 评论 -
设计模式-装饰模式
装饰模式(Decorator Pattern) 装饰模式就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例。关系图如下:[img]http://dl2.iteye.com/upload/attachment/0093/6529/1bac449c-2c20-38bd-8a9f-68e48f3127b6.png[/img]...原创 2014-02-07 14:49:18 · 75 阅读 · 0 评论 -
设计模式-命令模式
命令模式(Command) 命令模式很好理解,举个例子,司令员下令让士兵去干件事情,从整个事情的角度来考虑,司令员的作用是,发出口令,口令经过传递,传到了士兵耳朵里,士兵去执行。这个过程好在,三者相互解耦,任何一方都不用去依赖其他人,只需要做好自己的事儿就行,司令员要的是结果,不会去关注到底士兵是怎么实现的。 命令模式一般为三部分:接受者(Receiver)、命令(Comman...原创 2014-02-08 16:05:42 · 76 阅读 · 0 评论 -
设计模式-工厂方法模式
工厂方法模式:定义一个创建产品对象的工厂接口,让子类决定实例化哪一种实例对象,也就是将实际创建实例对象的工作推迟到子类当中。包括抽象工厂、具体工厂、抽象产品、具体产品。抽象产品[code="java"]public abstract class Car { private String name; public String getName() { retur...原创 2014-02-10 10:13:18 · 103 阅读 · 0 评论 -
设计模式-抽象工厂模式
抽象工厂模式(Abstract Factory Pattern)每一个模式都是针对一定问题的解决方案,工厂方法模式针对的是一个产品等级结构;而抽象工厂模式针对的是多个产品等级结构. 先来认识下什么是产品族: 位于不同产品等级结构中,功能相关联的产品组成的家族。还是让我们用一个例子来形象地说明一下吧。[img]http://dl2.iteye.com/upload/attachm...原创 2014-02-10 14:17:29 · 66 阅读 · 0 评论 -
设计模式
[size=large]设计模式分为三类:[/size] 创建型模式: 创建型模式用来处理创建对象的过程。[url=http://danielhan.iteye.com/blog/2013057]工厂方法模式(Factory Method Pattern)[/url][url=http://danielhan.iteye.com/blog/2013527]抽象工厂模式(Abstra...原创 2014-02-10 14:18:15 · 80 阅读 · 0 评论 -
设计模式-建造者模式
建造者模式(Builder Pattern)将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。主要由以下几个部分组成:[img]http://dl2.iteye.com/upload/attachment/0093/7038/f49bc77e-7f38-31c9-b51e-b84821ee2fab.png[/img][list][*]产品类:一般...原创 2014-02-10 16:50:42 · 75 阅读 · 0 评论 -
设计模式-单例模式
单例模式(Singleton Pattern)对于系统中的某些类来说,只有一个实例很重要,例如,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;一个系统只能有一个窗口管理器或文件系统;一个系统只能有一个计时工具或ID(序号)生成器。如在Windows中就只能打开一个任务管理器。如果不使用机制对窗口对象进行唯一化,将弹出多个窗口,如果这些窗口显示的内容完全一致,则是重复对象,浪费内...原创 2014-02-10 17:32:46 · 67 阅读 · 0 评论 -
设计模式-原型模式
原型模式(Prototype Pattern)用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。浅复制(浅克隆): 浅复制仅仅复制所考虑的对象,而不复制它所引用的对象。 深复制(深克隆):深复制把要复制的对象所引用的对象都复制了一遍。 Java中对象的克隆,为了获取对象的一份拷贝,我们可以利用Object类的clone()方法。必须要遵循下面三点:1....原创 2014-02-11 08:48:34 · 73 阅读 · 0 评论 -
设计模式-备忘录模式
备忘录模式(Memento Pattern)在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。涉及角色:1.Original(发起人):负责创建一个备忘录Memento,用以记录当前时刻自身的内部状态,并可使用备忘录恢复内部状态。Originator可以根据需要决定Memento存储自己的哪些内部状态。2.Mem...原创 2014-02-20 08:56:22 · 71 阅读 · 0 评论