
设计模式
xiaoshang
这个作者很懒,什么都没留下…
展开
-
23种设计模式(1):单例模式
定义:确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。类型:创建类模式类图:类图知识点:1.类图分为三部分,依次是类名、属性、方法2.以>结尾的为注释信息3.修饰符+代表public,-代表private,#代表protected,什么都没有代表包可见。4.带下划线的属性或方法代表是静态的。5.对类图中对象的关转载 2012-11-22 21:29:20 · 392 阅读 · 0 评论 -
23种设计模式(10):命令模式
定义:将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。类型:行为类模式类图:命令模式的结构 顾名思义,命令模式就是对命令的封装,首先来看一下命令模式类图中的基本结构:Command类:是一个抽象类,类中对需要执行的命令进行声明,一般来说要对外公布一个execute转载 2013-01-08 15:42:52 · 309 阅读 · 0 评论 -
Java设计模式之策略模式代码示例
策略设计模式:Dock超类:package com.hycz.design.pattern.strategy;import com.hycz.design.pattern.strategy.behavioral.FlyBehavior;import com.hycz.design.pattern.strategy.behavioral.QuackBehavior;原创 2013-06-13 11:30:44 · 676 阅读 · 0 评论 -
Java设计模式之装饰者模式
装饰者模式:package com.hycz.design.pattern.decorator.abstracts;/** * Created with IntelliJ IDEA. * User: shangke * Date: 6/13/13 * Time: 5:39 PM * To change this template use File | Settings | Fil原创 2013-06-14 08:50:49 · 584 阅读 · 0 评论 -
Java简单工厂方法
Java简单工厂方法package com.hycz.design.pattern.factory.simple.interfaces;/** * Created with IntelliJ IDEA. * User: shangke * Date: 6/14/13 * Time: 9:33 AM * To change this template use File | Sett原创 2013-06-14 11:34:44 · 537 阅读 · 0 评论 -
Java设计模式之工厂方法模式
工厂方法模式:package com.hycz.design.pattern.factory.factorymethod;/** * Created with IntelliJ IDEA. * User: shangke * Date: 6/14/13 * Time: 11:10 AM * To change this template use File | Settings |原创 2013-06-14 11:37:05 · 623 阅读 · 0 评论 -
Java设计模式之观察者模式
观察者模式(Observer)package com.hycz.design.pattern.observer.interfaces;/** * Created with IntelliJ IDEA. * User: shangke * Date: 6/13/13 * Time: 3:47 PM * To change this template use File | S原创 2013-06-13 16:32:55 · 629 阅读 · 0 评论 -
Java设计模式之命令模式
命令模式:package com.hycz.design.pattern.command;/** * Created with IntelliJ IDEA. * User: shangke * Date: 6/14/13 * Time: 4:04 PM * To change this template use File | Settings | File Templat原创 2013-06-14 16:20:53 · 501 阅读 · 0 评论 -
Java设计模式之适配器模式
类适配器:package com.hycz.design.pattern.Adapter.ClassAdapter;/** * Created with IntelliJ IDEA. * User: shangke * Date: 6/14/13 * Time: 5:48 PM * To change this template use File | Settings | Fil原创 2013-06-14 17:59:18 · 557 阅读 · 0 评论 -
Java设计模式之模板方法
模板方法package com.hycz.design.pattern.template;/** * Created with IntelliJ IDEA. * User: shangke * Date: 6/17/13 * Time: 11:33 AM * To change this template use File | Settings | File Templates.原创 2013-06-17 11:42:01 · 729 阅读 · 0 评论 -
Java设计模式之组合模式
组合模式:package com.hycz.design.pattern.Composite;/** * Created with IntelliJ IDEA. * User: shangke * Date: 6/17/13 * Time: 4:38 PM * To change this template use File | Settings | File Templates原创 2013-06-17 17:33:37 · 547 阅读 · 0 评论 -
访问者模式讨论篇:java的动态绑定与双分派
java的动态绑定 所谓的动态绑定就是指程执行期间(而不是在编译期间)判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。java继承体系中的覆盖就是动态绑定的,看一下如下的代码:[java] view plaincopyclass Father { public void method(){转载 2013-01-08 14:25:27 · 308 阅读 · 0 评论 -
23种设计模式(9):访问者模式
定义:封装某些作用于某种数据结构中各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。类型:行为类模式类图: 访问者模式可能是行为类模式中最复杂的一种模式了,但是这不能成为我们不去掌握它的理由。我们首先来看一个简单的例子,代码如下:[java] view plaincopyclass转载 2013-01-08 11:58:33 · 400 阅读 · 0 评论 -
23种设计模式(8):观察者模式
定义:定义对象间一种一对多的依赖关系,使得当每一个对象改变状态,则所有依赖于它的对象都会得到通知并自动更新。类型:行为类模式类图: 在软件系统中经常会有这样的需求:如果一个对象的状态发生改变,某些与它相关的对象也要随之做出相应的变化。比如,我们要设计一个右键菜单的功能,只要在软件的有效区域内点击鼠标右键,就会弹出一个菜单;再比如,我们要设计一个自动部署转载 2013-01-08 10:46:16 · 369 阅读 · 0 评论 -
委托模式( delegate)
委托模式是软件设计模式中的一项基本技巧。在委托模式中,有两个对象参与处理同一个请求,接受请求的对象将请求委托给另一个对象来处理。委托模式是一项基本技巧,许多其他的模式,如状态模式、策略模式、访问者模式本质上是在更特殊的场合采用了委托模式。委托模式使得我们可以用聚合来替代继承,它还使我们可以模拟mixin。[编辑]简单的Java例子在这个例子里,类模拟打印机Printer拥有针式打印转载 2012-12-28 14:14:54 · 1666 阅读 · 0 评论 -
设计模式中类的关系
在java以及其他的面向对象设计模式中,类与类之间主要有6种关系,他们分别是:依赖、关联、聚合、组合、继承、实现。他们的耦合度依次增强。1. 依赖(Dependence) 依赖关系的定义为:对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。定义比较晦涩难懂,但在java中的表现还是比较直转载 2012-12-31 10:20:19 · 400 阅读 · 0 评论 -
23种设计模式(2):工厂方法模式
定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。类型:创建类模式类图:工厂方法模式代码[java] view plaincopyinterface IProduct { public void productMethod(); } cl转载 2013-01-04 17:22:28 · 333 阅读 · 0 评论 -
23种设计模式(3):抽象工厂模式
定义:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。类型:创建类模式类图:抽象工厂模式与工厂方法模式的区别 抽象工厂模式是工厂方法模式的升级版本,他用来创建一组相关或者相互依赖的对象。他与工厂方法模式的区别就在于,工厂方法模式针对的是一个产品等级结构;而抽象工厂模式则是针对的多个产品等级结构。在编程中,通常一个产品结构,转载 2013-01-04 18:19:47 · 353 阅读 · 0 评论 -
23种设计模式(4):建造者模式
定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。类型:创建类模式类图:四个要素产品类:一般是一个较为复杂的对象,也就是说创建对象的过程比较复杂,一般会有比较多的代码量。在本类图中,产品类是一个具体的类,而非抽象类。实际编程中,产品类可以是由一个抽象类与它的不同实现组成,也可以是由多个抽象类与他们的实现组成。抽象建造者:引入抽象转载 2013-01-05 14:47:25 · 300 阅读 · 0 评论 -
23种设计模式(5):原型模式
定义:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。类型:创建类模式类图:原型模式主要用于对象的复制,它的核心是就是类图中的原型类Prototype。Prototype类需要具备以下两个条件:实现Cloneable接口。在java语言有一个Cloneable接口,它的作用只有一个,就是在运行时通知虚拟机可以安全地在实现了此接口的类上使用clo转载 2013-01-05 14:54:46 · 306 阅读 · 0 评论 -
创建类模式总结篇
创建类模式主要关注对象的创建过程,将对象的创建过程进行封装,使客户端可以直接得到对象,而不用去关心如何创建对象。创建类模式有5种,分别是:单例模式:用于得到内存中的唯一对象。工厂方法模式:用于创建复杂对象。抽象工厂模式:用于创建一组相关或相互依赖的复杂对象。建造者模式:用于创建模块化的更加复杂的对象。原型模式:用于得到一个对象的拷贝。为什么需要创建性模式 首先转载 2013-01-05 15:12:24 · 304 阅读 · 0 评论 -
Java中23种经典设计模式详解
目录1. 设计模式 31.1 创建型模式 41.1.1 工厂方法 41.1.2 抽象工厂 61.1.3 建造者模式 101.1.4 单态模式 131.1.5 原型模式 151.2 结构型模式 171.2.1 适配器模式 171.2.2 桥接模式 191.2.3 组合模式 231.2.4 装饰模式 261.2.5 外观模式 291.2.6 享元转载 2013-01-05 17:10:39 · 845 阅读 · 0 评论 -
23种设计模式(6):模版方法模式
定义:定义一个操作中算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变算法的结构即可重定义该算法中的某些特定步骤。类型:行为类模式类图: 事实上,模版方法是编程中一个经常用到的模式。先来看一个例子,某日,程序员A拿到一个任务:给定一个整数数组,把数组中的数由小到大排序,然后把排序之后的结果打印出来。经过分析之后,这个任务大体上可分为两部分,排序和转载 2013-01-05 15:18:10 · 447 阅读 · 0 评论 -
23种设计模式(7):中介者模式
定义:用一个中介者对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使耦合松散,而且可以独立地改变它们之间的交互。类型:行为类模式类图:中介者模式的结构 中介者模式又称为调停者模式,从类图中看,共分为3部分: 抽象中介者:定义好同事类对象到中介者对象的接口,用于各个同事类之间的通信。一般包括一个或几个抽象的事件方法,并由子转载 2013-01-05 15:34:01 · 374 阅读 · 0 评论 -
Java 设计模式之状态模式
状态模式:package com.hycz.design.pattern.state;/** * Created with IntelliJ IDEA. * User: shangke * Date: 6/18/13 * Time: 10:19 AM * To change this template use File | Settings | File Templates.原创 2013-06-18 11:02:36 · 602 阅读 · 0 评论