设计模式
藏红
不要担心自己走错路误了终身,坚持并保持进步才是正道。
展开
-
Java策略模式
1.策略模式:将可变的部分从程序中抽象分离成算法接口,在该接口下分别封装一系列算法实现。并使他们可以相互替换,从而导致客户端程序独立于算法的改变。2.多用组合,少用继承什么是composition?—在类中增加一个私有域,引用另一个已有的类的实例,通过调用引用的实例的方法从而获得新的功能,这种设计被称作composition(组合、复合)。3.策略模式的优点(1)、策略模式因为使用了组合,使得架构更加灵活(2)、富有弹性,可以较好的应对变化(开闭原则)(3)、更好的代码复用性(相对于翻译 2015-03-06 12:46:39 · 688 阅读 · 0 评论 -
java抽象工厂模式
抽象工厂模式(英语:Abstract factory pattern)是一种软件开发设计模式。抽象工厂模式提供了一种方式,可以将一组具有同一主题的单独的工厂封装起来。在正常使用中,客户端程序需要创建抽象工厂的具体实现,然后使用抽象工厂作为接口来创建这一主题的具体对象。客户端程序不需要知道(或关心)它从这些内部的工厂方法中获得对象的具体类型,因为客户端程序仅使用这些对象的通用接口。抽象工厂模式将原创 2015-08-18 15:52:13 · 633 阅读 · 0 评论 -
Java适配器模式
适配器模式:是将一个类的接口转换成客户期望的另外一个接口。使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。例子:现在有一台笔记本NoteBook , 它的充电器是一个三口的,但是我现在只有一个二口的插板TwoPlug , 那么就需要一个三口的适配器(ThreePlugAdapter) 来将二口的插板转换成三口的插板供笔记本充电。原创 2015-02-07 14:17:07 · 640 阅读 · 0 评论 -
java命令模式
命令模式(Command Pattern):将一个请求封装为一个对象,从而使我们可用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。命令模式是一种对象行为型模式,其别名为动作(Action)模式或事务(Transaction)模式。命令模式包含如下角色:Command: 抽象命令类ConcreteCommand: 具体命令类Invoker: 调用者原创 2015-08-21 21:03:34 · 647 阅读 · 0 评论 -
Java单例模式
单例是Java设计模式中最简单的模式使用设计模式的目的: 使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码的可靠性单例模式使用情形:在有些情况下,对象有且只有一个的时候可以使用单例模式,比如:配置文件,工具类,线程池,日志,缓存对象等单例模式的要点:1.将构造方法私有化,不允许外部直接创建对象2.创建类的唯一实例,使用private static 修饰3.提供一个用于获取实例的方法,使用private static 修饰单例模式的类型 饿汉模式:加载类时比较慢,但运行时获取对象原创 2015-02-01 22:25:18 · 566 阅读 · 0 评论 -
java工厂方法模式
工厂方法模式:工厂方法模式的实质是“定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类。工厂方法让类的实例化推迟到子类中进行。”UML代码举例例如,有一个Button类表示按钮,另有它的两个子类WinButton和MacButton分别代表Windows和Mac风格的按钮,那么这几个类和用于创建它们的工厂类在Java中可以如下实现原创 2015-08-18 15:01:35 · 486 阅读 · 0 评论 -
java访问者模式
访问者当你想要为一个对象的组合增加新的能力,且封装并不重要时,就使用访问者模式。UML图例interface Visitor { void visit(Wheel wheel); void visit(Engine engine); void visit(Body body); void visit(C原创 2015-08-31 22:18:05 · 478 阅读 · 0 评论 -
java桥接模式
参考:http://www.cnblogs.com/houleixx/archive/2008/02/23/1078877.html学习设计模式也有一段时间了,今天就把我整理的一篇课程和大家分享,有不妥之处欢迎指出. 生活中的一个例子: 就拿汽车在路上行驶的来说。即有小汽车又有公共汽车,它们都不但能在市区中的公路上行驶,也能在高速公路上行驶。这你会发现,对于交通工具(汽车)有不同原创 2015-08-31 18:38:11 · 688 阅读 · 0 评论 -
java建造者模式
1.生成器模式的定义将一个复杂的对象的构件与它的表示分离,使得同样的构建过程可以创建不同的表示2.生成器模式的UMLBuilder :生成器接口,定义创建一个Product各个部件的操作ConcreteBuilder:具体的生成器的实现类Product:产品,表示被生成器构建的复杂的对象,包含多个部件Director:指导者也转载 2015-08-31 19:26:31 · 554 阅读 · 0 评论 -
Java代理模式
代理模式的定义: 为其他对象提供一种代理以控制对这个对象的访问。代理对象起到中介作用,可以去掉功能服务或者添加额外的服务静态代理: 代理和被代理对象在代理之前是确定的。他们都实现相同的接口或者继承相同的抽象类以聚合代理的方式实现静态代理为例:首先抽象接口package proxy;public interface Moveable { void move();}原创 2015-06-15 14:05:35 · 402 阅读 · 0 评论 -
java状态模式
模式定义状态模式(State Pattern) :允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。其别名为状态对象(Objects for States),状态模式是一种对象行为型模式。UML类图例package state;/** * State * * */public interface State {原创 2015-08-28 13:08:05 · 501 阅读 · 0 评论 -
java装饰者模式
1. 什么是装饰者模式?装饰者模式动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。2.装饰者模式的类图未完原创 2015-07-23 15:12:39 · 571 阅读 · 0 评论 -
java外观模式
外观模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式又称为门面模式,它是一种对象结构型模式。UML类图例:/* Complex parts */class CPU { public void freeze() { ..原创 2015-08-22 12:29:15 · 527 阅读 · 0 评论 -
java迭代器模式
模式定义提供一种方法访问一个容器对象中各个元素,而又不暴露该对象的内部细节。UML类图例:interface Iterator{ Object First(); Object Next(); boolean IsDone(); Object CurrentItem();}abstract clas原创 2015-08-24 09:07:10 · 512 阅读 · 0 评论 -
java组合模式
模式定义组合模式允许你将对象组合成树形结构来表现“整体/部分”层次结构。组合能让客户以一致的方式处理个别对象以及对象组合UML类图例package composite;import java.util.Iterator;/** * Component * * @author chenhong * * */public abstract c原创 2015-08-24 10:14:11 · 487 阅读 · 0 评论 -
Java模版方法模式
java模版方法模式: 算法执行的统一框架,模版方法模式定义了一个操作中的算法骨架,将一些步骤延迟到子类实现,使得子类可以在不改变算法结构的同时就重新定义该算法的某些特定步骤。适用场景:A、算法或者操作遵循相似的逻辑B、重构时(把相同的代码抽取到父类中)C、重要、复杂的算法,核心算法设计为模板算法优点:A、封装性好B、复用性好C、屏蔽细节D、便于维护缺点:继承原创 2015-02-04 12:56:31 · 1023 阅读 · 0 评论 -
java设计模式——观察者模式
1.观察者模式两种模式(1)推模型:目标对象主动向观察者推送目标的详细信息 ; 推送的信息通常是目标信息的全部或部分信息(2)拉模型:目标对象在通知观察者的时候,只传递少量信息 ;如果观察者需要更具体的信息,由观察者主动到目标对象中获取,相当于是观察者从目标对象中拉数据;一般这种模型的实现中,会把目标对象自身通过update方法传递给观察者。 比较推模型是假定目标对象知道观察着需要原创 2015-07-05 19:36:42 · 588 阅读 · 0 评论