设计模式
DanielHan
这个作者很懒,什么都没留下…
展开
-
设计模式-状态模式
、预览模式,在编辑模式下可以添加、修改、删除、查看文档,而在预览模式下只能查看文档。Context类,用于保存当前模式[code="java"]public class Context { //预览模式 public static final int PREVIEW_STATE=-1; //编辑模式 public static final int EDIT_STATE=0; //当前状态 private IState curState;原创 2014-02-20 08:56:12 · 54 阅读 · 0 评论 -
设计模式-原型模式
原创 2014-02-11 08:48:34 · 47 阅读 · 0 评论 -
设计模式-单例模式
原创 2014-02-10 17:32:46 · 54 阅读 · 0 评论 -
设计模式-建造者模式
l2.iteye.com/upload/attachment/0093/7038/f49bc77e-7f38-31c9-b51e-b84821ee2fab.png[/img][list][*]产品类:一般是一个较为复杂的对象,也就是说创建对象的过程比较复杂,一般会有比较多的代码量。在本类图中,产品类是一个具体的类,而非抽象类。实际编程中,产品类可以是由一个抽象类与它的不同实现组成,也可以是由多个抽象类与他们的实现组成。[*]抽象建造者:引入抽象建造者的目的,是为了将建造的具体过程交给它的子类原创 2014-02-10 16:50:42 · 54 阅读 · 0 评论 -
设计模式-抽象工厂模式
个产品等级结构. 先来认识下什么是产品族: 位于不同产品等级结构中,功能相关联的产品组成的家族。还是让我们用一个例子来形象地说明一下吧。[img]http://dl2.iteye.com/upload/attachment/0093/6954/f7fdb88f-4971-33f8-a463-7742897625cb.png[/img]图中的BmwCar和BenzCar就是两个产品树(产品层次结构);而如图所示的BenzSportsCar和BmwSportsCar就是一个产品族。他们都原创 2014-02-10 14:17:29 · 55 阅读 · 0 评论 -
设计模式-工厂方法模式
工厂、具体工厂、抽象产品、具体产品。抽象产品[code="java"]public abstract class Car { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }[/code]具体产品[code="ja原创 2014-02-10 10:13:18 · 91 阅读 · 0 评论 -
设计模式
hod Pattern)[/url][url=http://danielhan.iteye.com/blog/2013527]抽象工厂模式(Abstract Factory Pattern)[/url][url=http://danielhan.iteye.com/blog/2013605]建造者模式(Builder Pattern)[/url][url=http://danielhan.iteye.com/blog/2013653]原型模式(Prototype Pattern)[/url]原创 2014-02-10 14:18:15 · 53 阅读 · 0 评论 -
设计模式-命令模式
原创 2014-02-08 16:05:42 · 51 阅读 · 0 评论 -
设计模式-装饰模式
被装饰对象的实例。关系图如下:[img]http://dl2.iteye.com/upload/attachment/0093/6529/1bac449c-2c20-38bd-8a9f-68e48f3127b6.png[/img]例子:咖啡和配料咖啡和配料的通用接口[code="java"]public interface Beverage { public String getDescription(); public double cos原创 2014-02-07 14:49:18 · 53 阅读 · 0 评论 -
设计模式-适配器模式
[img]http://dl2.iteye.com/upload/attachment/0093/7130/c357d41d-8331-3458-8c26-3fc2282e5918.png[/img]电源基类[code="java"]public abstract class Power { private float power; private String unit="V"; public Power(float p原创 2014-02-11 09:54:01 · 59 阅读 · 0 评论 -
设计模式-桥接模式
原创 2014-02-11 12:31:40 · 59 阅读 · 0 评论 -
设计模式-备忘录模式
的状态。涉及角色:1.Original(发起人):负责创建一个备忘录Memento,用以记录当前时刻自身的内部状态,并可使用备忘录恢复内部状态。Originator可以根据需要决定Memento存储自己的哪些内部状态。2.Memento(备忘录):负责存储Originator对象的内部状态,并可以防止Originator以外的其他对象访问备忘录。备忘录有两个接口:Caretaker只能看到备忘录的窄接口,他只能将备忘录传递给其他对象。Originator却可看到备忘录的宽接口,允许它访问返回原创 2014-02-20 08:56:22 · 60 阅读 · 0 评论 -
设计模式-中介者模式
2014-02-19 13:45:56 · 44 阅读 · 0 评论 -
设计模式-迭代器模式
2014-02-19 11:20:50 · 48 阅读 · 0 评论 -
设计模式-责任链模式
2014-02-18 16:33:04 · 46 阅读 · 0 评论 -
设计模式-代理模式
2014-02-18 11:53:27 · 63 阅读 · 0 评论 -
设计模式-享元模式
原创 2014-02-12 08:53:22 · 64 阅读 · 0 评论 -
设计模式-外观模式
原创 2014-02-11 15:30:21 · 47 阅读 · 0 评论 -
设计模式-组合模式
它使我们在树形结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以像处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦。[img]http://dl2.iteye.com/upload/attachment/0093/7323/49fdb134-45a6-3238-a836-dcb8d1c28e3f.png[/img]员工类[code="java"]public abstract class Staff { //姓名原创 2014-02-11 14:04:30 · 63 阅读 · 0 评论 -
设计模式-观察者模式
原创 2014-01-27 15:29:43 · 41 阅读 · 0 评论 -
设计模式
设计模式分为三类: 创建型模式: 创建型模式用来处理创建对象的过程。工厂方法模式(Factory Method Pattern)抽象工厂模式(Abstract Factory Pattern)建造者模式(Builder Pattern)原型模式(Prototype Pattern)单例模式(Singleton Pattern)结构型模式:结构型模式用来处理类或对象的组合。适配原创 2016-01-07 12:02:01 · 181 阅读 · 0 评论 -
策略模式
http://www.cnblogs.com/java-my-life/archive/2012/05/10/2491891.html转载 2016-08-25 10:24:04 · 268 阅读 · 0 评论 -
设计模式-桥接模式
桥接模式(Bridge pattern)在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?这就要使用Bridge模式。抽象化存在于多个实体中的共同的概念性联系,就是抽象化。作为一个过程,抽象化就是忽略一些信息,从而把不同的实体当做同样的实体对待。实原创 2016-01-07 12:16:33 · 202 阅读 · 0 评论 -
设计模式-组合模式
组合模式(Composite Pattern) 将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 它使我们在树形结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以像处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦。员工类public abstract class Staff原创 2016-01-07 12:19:15 · 270 阅读 · 0 评论 -
设计模式-外观模式
外观模式(Facade Pattern)外观模式是软件工程中常用的一种软件设计模式。它为子系统中的一组接口提供一个统一的高层接口。这一接口使得子系统更加容易使用。public class CPU { public void startup(){ System.out.println("cpu startup!"); }原创 2016-01-07 12:21:54 · 179 阅读 · 0 评论 -
设计模式-享元模式
享元模式(Flyweight Pattern)享元模式,以共享的方式高效地支持大量的细粒度对象。通过复用内存中已存在的对象,降低系统创建对象实例的性能消耗。以黑白五子棋为例public abstract class Chessman { private String color; private int x; private int y; public Che原创 2016-01-07 12:24:35 · 425 阅读 · 0 评论 -
设计模式-代理模式
代理模式(Proxy Pattern)代理模式是软件设计模式中的一种基本技巧。代理模式的主要作用是为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。一般包括三部分:1.抽象角色:真实对象和代理对象的共同接口2.真实角色:真实处理请求的目标对象3.代理角色:代理对象角色内部含有真实对象的原创 2016-01-07 12:41:13 · 209 阅读 · 0 评论 -
设计模式-迭代器模式
迭代器模式(Iterator Pattern)提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示JDK中java.util.Iterator就运用了迭代器模式public interface Iterator { /** * Returns {@code true} if the iteration has more elements.原创 2016-01-07 12:46:35 · 195 阅读 · 0 评论 -
设计模式-中介者模式
中介者模式(Mediator Pattern)用一个中介对象来封装一系列对象之间的交互,使各个对象不需要显式地引用其他对象实例,从而降低各个对象之间的耦合度,并且可以独立地改变对象间的交互关系。举例:多人聊天,一个人发消息,其他人都能收到(服务器相当于中介者)抽象用户类public abstract class AbstractUser{ private IMediator m原创 2016-01-07 12:49:17 · 195 阅读 · 0 评论 -
设计模式-备忘录模式
备忘录模式(Memento Pattern)在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。涉及角色:1.Original(发起人):负责创建一个备忘录Memento,用以记录当前时刻自身的内部状态,并可使用备忘录恢复内部状态。Originator可以根据需要决定Memento存储自己的哪些内部状态。2.Memento(原创 2016-01-07 12:52:24 · 227 阅读 · 0 评论 -
设计模式-适配器模式
适配器模式(Adapter pattern)适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题。电源基类public abstract class Power { private float power; private String unit="V"; public Power(float power原创 2016-01-07 12:13:53 · 174 阅读 · 0 评论 -
设计模式-原型模式
原型模式(Prototype Pattern)用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。浅复制(浅克隆): 浅复制仅仅复制所考虑的对象,而不复制它所引用的对象。 深复制(深克隆):深复制把要复制的对象所引用的对象都复制了一遍。 Java中对象的克隆,为了获取对象的一份拷贝,我们可以利用Object类的clone()方法。必须要遵循下面三点:1.在派生类中实现原创 2016-01-07 12:11:12 · 176 阅读 · 0 评论 -
设计模式-状态模式
状态模式(State Pattern) 当一个对象的内在状态改变时允许改变其行为,这个对象看起来就像是改变了。 举例:Word文本编辑器的两种模式:编辑模式、预览模式,在编辑模式下可以添加、修改、删除、查看文档,而在预览模式下只能查看文档。 Context类,用于保存当前模式 public class Context { //预览模式 public static fi原创 2016-01-07 16:54:56 · 249 阅读 · 0 评论 -
设计模式-观察者模式
观察者模式(Observer)定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新。问题:气象观测站要做一个系统,要求如下:根据WeatherData(温度,湿度,气压)生成三个公告板,分别显示当前的状况,气象统计和简单的预报。当WeatherData对象变化时,三个公告栏能实时地更新下面利用JDK自带的类来完成:public原创 2016-01-07 11:48:34 · 205 阅读 · 0 评论 -
设计模式-装饰模式
装饰模式(Decorator Pattern) 装饰模式就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例。关系图如下:例子:咖啡和配料咖啡和配料的通用接口public interface Beverage { public String getDescription(); public do原创 2016-01-07 11:51:16 · 235 阅读 · 0 评论 -
设计模式-命令模式
命令模式(Command) 命令模式很好理解,举个例子,司令员下令让士兵去干件事情,从整个事情的角度来考虑,司令员的作用是,发出口令,口令经过传递,传到了士兵耳朵里,士兵去执行。这个过程好在,三者相互解耦,任何一方都不用去依赖其他人,只需要做好自己的事儿就行,司令员要的是结果,不会去关注到底士兵是怎么实现的。 命令模式一般为三部分:接受者(Receiver)、命令(Command)原创 2016-01-07 11:53:58 · 247 阅读 · 0 评论 -
设计模式-工厂方法模式
工厂方法模式:定义一个创建产品对象的工厂接口,让子类决定实例化哪一种实例对象,也就是将实际创建实例对象的工作推迟到子类当中。包括抽象工厂、具体工厂、抽象产品、具体产品。抽象产品public abstract class Car { private String name; public String getName() { return name; } p原创 2016-01-07 11:56:39 · 265 阅读 · 0 评论 -
设计模式-抽象工厂模式
抽象工厂模式(Abstract Factory Pattern)每一个模式都是针对一定问题的解决方案,工厂方法模式针对的是一个产品等级结构;而抽象工厂模式针对的是多个产品等级结构. 先来认识下什么是产品族: 位于不同产品等级结构中,功能相关联的产品组成的家族。还是让我们用一个例子来形象地说明一下吧。图中的BmwCar和BenzCar就是两个产品树(产品层次结构);而如图所示的Benz原创 2016-01-07 11:59:20 · 225 阅读 · 0 评论 -
设计模式-建造者模式
建造者模式(Builder Pattern)将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。主要由以下几个部分组成:产品类:一般是一个较为复杂的对象,也就是说创建对象的过程比较复杂,一般会有比较多的代码量。在本类图中,产品类是一个具体的类,而非抽象类。实际编程中,产品类可以是由一个抽象类与它的不同实现组成,也可以是由多个抽象类与他们的实现组成。抽象建造者:引原创 2016-01-07 12:04:42 · 209 阅读 · 0 评论 -
设计模式-单例模式
单例模式(Singleton Pattern)对于系统中的某些类来说,只有一个实例很重要,例如,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;一个系统只能有一个窗口管理器或文件系统;一个系统只能有一个计时工具或ID(序号)生成器。如在Windows中就只能打开一个任务管理器。如果不使用机制对窗口对象进行唯一化,将弹出多个窗口,如果这些窗口显示的内容完全一致,则是重复对象,浪费内存原创 2016-01-07 12:07:24 · 180 阅读 · 0 评论