
设计模式
mojp812
这个作者很懒,什么都没留下…
展开
-
设计模式学习篇-strategy策略模式
策略模式:接口与实现,定义一系列的算法,把他们一个个封装起来,并且使他们可相互替换,本模式使得算法可独立于使用它的客户而变化。 策略模式的重心不是如何来实现算法,而是如何组织,调用这些算法。 算法的选择:一:在客户端,当使用上下文的时候,由客户端来选择具体的策略算法, 二:客户端不管,有上下文来选择具体额策略算法。 本质:就是分离算法,选择实现。...原创 2011-08-16 06:34:53 · 101 阅读 · 0 评论 -
设计模式学习篇-Composite组合模式
组合模式(Composite)属于结构性模式,它描述了对象间的组合关系。对象间常常通过树结构来组织(包含)起来,以实现整体-部分的层次结构。整体上可以看做是一个组合对象。抛却各种复杂的术语,组合模式的特点是:对象通过实现(继承)统一的接口(抽象类),调用者对单一对象和组合对象的操作具有一致性。组合模式好处: 1.使客户端调用简单,客户端可以一致的使用组合结构或其中单个对象,用户就...原创 2011-08-11 09:21:14 · 101 阅读 · 0 评论 -
设计模式学习篇-UML
类图: 静态视图的图形表达方式,表示声明的静态模型元素,如:类,类型,内容以及他们之间的关系。 属性定义语法: +表示public ,-表示private ,#表示protected,没有符号表示default静态则在属性或者方法下加下划线。 类之间的关系: 继承: 实线 + 三角依赖: 虚线 + 箭头实现: 虚线 + 三角 聚合:菱形 + 箭头 (弱聚...原创 2011-08-11 06:22:57 · 96 阅读 · 0 评论 -
设计模式学习篇-Iterator迭代器模式
迭代器模式:提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。迭代器模式:提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。迭代器模式把在元素之间的游走的责任交给迭代器,而不是聚合对象,这不仅让聚合的接口和实现变得更简洁,也可以让聚合更加专注在它所应该专注的事情上面,而不用去理会遍历的事情。本质上就是控制聚合对象中元素的访问。行为...原创 2011-08-05 08:31:49 · 91 阅读 · 0 评论 -
设计模式学习篇-Command命令模式
命令模式:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或者记录请求日志以及支持可撤销的操作。 本质上:封装请求。 命令模式是对命令的封装。命令模式把发出命令的责任和执行命令的责任分割开,委派给不同的对象。每一个命令都是一个操作:请求的一方发出请求要求执行一个操作;接收的一方收到请求,并执行操作。命令模式允许请求的一方和接收的一方独立开来,使得...原创 2011-08-04 06:28:40 · 88 阅读 · 0 评论 -
设计模式学习篇-Observer观察者模式
观察者模式:定义对象间一对多相依关系;使得每当一个对象改变状态则其相关的对象皆得到通知并自动更新。本质:触发联动。属于行为模式。观察者(Observer)模式又名发布-订阅(Publish/Subscribe)模式。 下面我们就来看看观察者模式的组成部分。 1) 抽象目标角色(Subject):目标角色知道它的观察者,可以有任意多个观察者观察同一个目标。并且提供注册和...原创 2011-07-30 12:01:41 · 99 阅读 · 0 评论 -
设计模式学习篇-proxy代码模式
代理模式:给某个对象提供一个代理对象,并由代理对象控制对原对象的引用。本质:就是控制对象。原理: 代理主题和真实主题实现相同的接口,使得任何使用真实主题的地方都可以使用代理主题,代理主题内部含有对真实主题的引用,在将调用传递给真实主题之前或之后执行一些额外的操作,达到控制真实主题的目的。 特征: 抽象主题角色(Subject):声明了真实主题和代理主题的共同接口。这样使得任...原创 2011-07-29 08:32:54 · 82 阅读 · 0 评论 -
设计模式学习篇-mediator中介者模式
中介者模式 :用一个中介对象来封装一系列的对象交互,中介者使得对象不需要显示的引用,从而使其松耦合,而且可以独立的改变他们的交互。中介者模式本质:封装交互 。 如果一组对象之间的通信方式比较复杂,导致相互依赖,结构混乱;如果一个对象引用了很多对象,并直接与这些对象进行交互,导致难以复用该对象。 可以采用中介者模式。 与外观模式相似:外观模式多用于封装一个子系统内部的多个模块,目...原创 2011-07-28 06:34:03 · 99 阅读 · 0 评论 -
设计模式学习篇-builder建造模式
建造模式:将一个复杂对象的构建过程与它的表示分离,使得同样的构造过程可以创建出不同的表示。是为了将构建复杂对象的过程和它的部件解耦 建造模式利用一个导演者对象和具体建造者对象一个一个地建造出所有的零件,从而建造出完整的产品对象。建造者模式将产品的结构和产品的零件建造过程对客户端隐藏起来,把对建造过程进行指挥的责任和具体建造零件和责任分割开来,达到责任划分和封装的目的。建造模式本质:...原创 2011-07-25 06:35:32 · 104 阅读 · 0 评论 -
设计模式学习篇-AbstactFactory抽象工程模式
抽象工厂模式:提供一个创建一组或者相互依赖对象的接口,而无需指定他们的具体类。本质:就是选择产品族的实现。客户端选择不同的工厂,就相当于在切换不同的产品族。 这个模式由一个工厂类层次和N个产品类层次组成。从每一个产品类层次中取出一个产品类形成产品类族,这个类族的实例为产品族。产品族中的产品之间有一种依赖关系。一个具体的工厂类负责创建产品族中的各个产品。在抽象工厂模式中,抽象产品可能...原创 2011-07-23 16:11:56 · 95 阅读 · 0 评论 -
设计模式学习篇-factorymethod工厂方法模式
工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类,这样使的一个类的实例化延迟到子类去实现。 工厂方法中,通常父类是一个抽象类,里边包含创建产品所需要的抽象方法,这些抽象方法就是工厂方法。子类在实现这些抽象方法的时候,通常并不是真正的由子类来实现具体的功能,而是在子类的方法里面进行选择,选择具体的产品来实现对象,一个工厂类只负责创建一种产品。工厂方法模式本质:延迟到...原创 2011-07-22 06:39:09 · 91 阅读 · 0 评论 -
设计模式学习篇-singleton单例模式
单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。JAVA单例模式的几种实现方法1.饿汉式单例类package pattern.singleton;//饿汉式单例类.在类初始化时,已经自行实例化 public class Singleton1 { //私有的默认构造子 private Singleton1() {} //已经自行实...原创 2011-07-21 22:47:59 · 83 阅读 · 0 评论 -
设计模式学习篇-Adapter适配器模式
适配器模式:将一个接口转换成客户希望的另一个接口,适配器模式使得原本接口不兼容而不能一起工作的类可以一起工作。Adapter适配器模式是一种结构型模式,主要应对:由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但是,新环境要求的接口是现存对象所不满足的。 在实际的生活中有很多例子,如:我们常使用的移动硬盘,无论是笔记本硬盘还是台式机硬盘,对于数据的传输都不使用...原创 2011-07-21 06:24:15 · 125 阅读 · 0 评论 -
设计模式学习篇-Facade门面模式
Facade门面模式,是一种结构型模式,它主要解决的问题是:组件的客户和组件中各种复杂的子系统有了过多的耦合,随着外部客户程序和各子系统的演化,这种过多的耦合面临很多变化的挑战为子系统中的一组接口提供一个统一简单高层接口,这个接口使得这一子系统更加容易实用。相当于对子模板进行适配。 门面模式是对象的结构模式。门面模式没有一个一般化的类图描述,下图演示了一个门面模式的示意性对象图:...原创 2011-07-20 08:03:55 · 163 阅读 · 0 评论 -
设计模式-第一篇
设计模式:就是在软件开发过程中,经过经验的 在特定的环境中,特定问题的解决方案。这个属于仁者建仁,智者见智。学习设计模式最重要的学会思想。 设计模式分类: 创建型模式:抽象对象实例化的过程,用来帮助创建对象的实例。Singleton单件模式、Abstract Factory抽象工厂模式、Builder生成器模式、Factory Method工厂方法模式、Prototyp...原创 2011-07-20 07:50:48 · 108 阅读 · 0 评论 -
设计模式学习篇-decorator装饰模式
定义:动态的给你个对象添加一些额外的职责,就增加功能来说:装饰模式比继承生成子类更为灵活。 特点: 比继承灵活,更容易复用功能,简化高层定义本质:就是动态组合。 抽象构件(Component)角色:给出一个抽象接口,以规范准备接收附加责任的对象和抽象装饰器。 具体构件(ConcreteComponent)角色:定义一个将要接收附加责任的类。 抽象装饰(Decorator)...原创 2011-08-24 06:21:41 · 94 阅读 · 0 评论 -
设计模式学习篇-Interpreter解释器模式
解释器模式定义:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。 比如:当xml 结构发生变化的时候,能够方便的获取相应元素或者属性值。 解释器本质:分离实现,解释执行。 Interpreter是一种特殊的设计模式,它建立一个解释器,对于特定的计算机程序设计语言,用来解释预先定义的文法。简单地说,Interpreter模式是...原创 2011-08-18 22:29:58 · 119 阅读 · 0 评论 -
设计模式学习篇-state状态模式
state模式属于对象行为型模式,允许一个对象在其内部状态改变时改变它的行为 。 State模式在实际使用中比较多,适合"状态的切换".因为我们经常会使用If elseif else 进行状态切换, 如果针对状态的这样判断切换反复出现,我们就要联想到是否可以采取State模式了.不只是根据状态,也有根据属性.如果某个对象的属性不同,对象的行为就不一样,这点在数据库系统中出现频率比较高,...原创 2011-08-17 08:22:11 · 153 阅读 · 0 评论 -
设计模式学习篇-template method 模板方法模式
模板方法模式:定义一个算法的骨架,将一些步骤延迟到子类中,模板方法使得子类不改变算法的结构但可以重新定义该算法特定的步骤。既要约束子类的行为,又要为子类提供公共的行为,必须使用抽象类。本质:就是固定算法的骨架。 此模式体现出变与不变。将不变的抽象出来提供公共行为。 模板方法的一个目的:就在于让其他类来扩展或者具体实现在模板方法中固定的算法骨架中特定的算法步骤。主要使用...原创 2011-08-12 06:37:42 · 119 阅读 · 0 评论