设计模式
wuyongdetainxia
这个作者很懒,什么都没留下…
展开
-
GOF的由来
《Design Patterns: Elements of Reusable Object-Oriented Software》(即后述《设计模式》一书),由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 合著(Addison-Wesley,1995)。这几位作者常被称为"四人组(Gang of Four)",而这本书也就...2012-02-22 17:50:16 · 166 阅读 · 0 评论 -
设计模式之建造者Builder模式2
[quote]同工厂模式的区别有,1可以返回不同的产品,产品很复杂2,多了一层建造者。当做一种事情的步骤是必不可少的。也就是说做这种事情,所有的步骤是不会少的。但是这些事情的具体做法的步骤实现又是不一样的。 由每个个具体的对象去实现 。 比如做一道菜,放盐,油等这些都是不可少的,但是每个人放的量又不一样。 有的时候我们做的时候就可能会因为一件事情的步...2012-03-08 09:25:59 · 101 阅读 · 0 评论 -
设计模式之访问者模式Vistor
访问者模式一般被用户一些数据结构稳定的场合,数据对象稳定,而实际对它的操作是不稳定的,他可以接受不同的对象而做出不同的反应,对与稳定的数据结构,它的功能和方法也就稳定,所以就把它抽象出来,抽取出来,而对于访问它的对象是经常改变的,传递不同的实际对象也就得到不同的运行效果,多态的体现 访问者模式的参与对象: 抽象节点:也就是稳定的数据结构对象,同时也声明具体数据结构对象的操...2012-03-02 15:44:50 · 109 阅读 · 0 评论 -
设计模式之轻量级Flyweight
轻量级模式实现对象的共享,从而减少内存分配的开销。该模式通常和工厂模式一起使用。 Flyweight的目的是为了减少内存的消耗而出现的一种模式。因此他是一种解决实现问题的模式,而不是用来解决建模问题的。 Flyweight享元设计模式是一种结构型设计模式,它主要解决的问题是:由于(同类)对象的数量太大,采用面向对象时给系统带来了难以承受的内存开销。 ...2012-03-02 14:20:08 · 89 阅读 · 0 评论 -
设计模式之观察着模式Observer
[b][color=red]Observer模式的功用:[/color][/b]是希望两个(或多个)对象,我们称之为Subject和Observer,当一方的状态发生改变的时候,另一方能够得到通知。也就是说,作为Observer的一方,能够监视到Subject的某个特定的状态变化,并为之做出反应。一个简单的例子就是:当一个用户视图中的数据被用户改变后,后端的数据库能够得到更新,而当数据库被其他方式...2012-03-02 10:52:25 · 79 阅读 · 0 评论 -
设计模式之命令模式Command
[color=red][b]Command定义:[/b][/color]将来自客户端的请求传入一个对象,无需了解这个请求激活的 动作或有关接受这个请求的处理细节。这是一种两台机器之间通讯联系性质的模式,类似传统过程语 言的 CallBack功能。 [b][color=red]优点:[/color][/b]解耦了发送者和接受者之间联系。 发送者调用一个操作,接受者接受请求执行相应的动作,因为...2012-03-02 10:02:48 · 98 阅读 · 0 评论 -
设计模式之状态模式State
[color=red][b]定义:[/b][/color]允许一个对象的内部状态改变时改变它的行为。对象看起来似乎修改了它的类。[color=red][b]状态:[/b][/color]对象实例的属性值。[color=red][b]行为:[/b][/color]对象的功能,大多对应到方法上。[color=red][b]状态模式的功能:[/b][/color]分离状态的行为,...2012-03-01 17:45:25 · 84 阅读 · 0 评论 -
设计模式之代理模式Proxy
[color=darkred][b]代理模式的作用是:[/b][/color]为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理模式一般涉及到的角色有:[b][color=red]抽象角色:[/color][/b]声明真实对象和代理对象的共同接口;[color=red]...2012-03-01 09:11:47 · 110 阅读 · 0 评论 -
设计模式之适配器Adapter
[color=red][b]作用:[/b][/color]把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口原因不匹配而无法一起工作的两个类能够一起工作。适配类可以根据参数返还一个合适的实例给客户端。 ...2012-03-01 09:11:31 · 94 阅读 · 0 评论 -
设计模式之Decorator
[color=red][b]装饰模式:[/b][/color]Decorator常被翻译成"装饰",我觉得翻译成"油漆工"更形象点,油漆工(decorator)是用来刷油漆的,那么被刷油漆的对象我们称decoratee.这两种实体在Decorator模式中是必须的.[b][color=red]Decorator定义:[/color][/b]动态给一个对象添加一些额外的职责,就象在墙上刷...2012-03-01 09:11:19 · 93 阅读 · 0 评论 -
设计模式之Facade
为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这*子系统更加容易使用。 适用性 1.当你要为一个*杂子系统提供一个简单接口时。子系统往往因为不断演化而变得越来越 复杂。大多数模式使用时都会产生更多更小的类。这使得子系统更具可重用性,也更容 易对子系统进行定制,但这也给*些不需要定制子系统的用户带来一些使用上的...2012-02-29 15:50:02 · 109 阅读 · 0 评论 -
设计之模式之单例(Singleton)
[color=red][b]主要作用:[/b][/color]Singleton模式主要作用是保证在Java应用程序中,一个类只有一个实例存在。在很多操作中,比如建立目录、数据库连接都需要这样的单线程操作以达到对系统资源的访问进行控制之目的。单例模式只应在有真正的“单一实例”的需求时才可使用。[color=red][b]优点:[/b][/color]Singleton模式就为我们提供了这样实现...2012-02-29 15:16:11 · 106 阅读 · 0 评论 -
设计模式之建造者Builder模式
建造者模式来说:对于客户端来说,相关的产品内部的元件的建立都是被隐藏的.我们通过相关的角色去完成产品对象及其元件的建立.引用的一句话是这样说的:一个导演者对象和具体建造者对象一个一个地建造出所有的零件,从而建造出完整的产品对象.建造者模式将产品的结构和产品的零件建造过程对客户端隐藏起来,把对建造过程进行指挥的责任和具体建造者零件的责任侵害开来.达到责任划分和封装的目的.我觉...2012-02-29 13:42:04 · 98 阅读 · 0 评论 -
设计模式之Prototype(原型)
参考:http://archive.cnblogs.com/a/1896471/附件:本人的小的案例2012-02-29 11:04:33 · 89 阅读 · 0 评论 -
设计模式之工厂模式
工厂模式是:定义一个用于创建对象的接口,让子类决定实例化哪一个类,使一个类的实例化延迟到子类。 它有个特点,就是通常工厂的类层次与产品的类层次几乎是一样的树。如果说工厂是你的影子,你就是产品了。在你平时未用到模式的时候,你需要什么就new一个,这种情况就好比你躺在地上,人影合一了。那什么时候需要工厂模式呢。看看定义:“使一个类的实例化延迟到子类”,这个是关键,当你有必要延迟实例化的时候才需要用...2012-02-29 10:44:16 · 100 阅读 · 0 评论 -
如何学习好GOF设计模式?
[color=red][b]1.使用工具:面向对象语言开发环境(C++/Java)、UML建模工具(Rose)2.理解各种设计模式(Gof的23种模式)描述的基本概念3.分析典型的应用(比如Java的API)4.不断实践[/b][/color]...2012-02-27 10:27:55 · 149 阅读 · 0 评论 -
开闭原则的认识
[color=red][b]☆ 开闭原则指的是一个软件实体应对对扩展开发,对修改关闭(Software entities should be open for extension, but closed for modification)。这个原则是说在设计一个模块的时候,应对使这个模块可以在不被修改的前提下被扩展,换言之,应对可以不必修改源代码的情况下改变这个模块的行为。[/b][/color]...2012-02-24 14:06:25 · 103 阅读 · 0 评论 -
Proxy设计模式
(1)简介 Proxy模式也叫代理模式,是由GoF提出的23种软件设计模式的一种。Proxy模式是构造型的设计模式之一.所谓代理,是指具有与代理元(被代理的对象)具有相同的接口的类,客户端必须通过代理与被代理的目标类交互,而代理一般在交互的过程中(交互前后),进行某些特别的处理。 根据这些“特别处理”的不同,有以下几种常见的代理模式:- Remote proxy:远程代理。该代...2012-02-23 16:04:52 · 94 阅读 · 0 评论 -
设计模式之策略模式
策略模式:它定义了算法家族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户。具体详见附件:[code="java"]package hx.designpattern.strategy;public abstract class Strategy { public abstract void algorithmInterface();...2012-03-08 09:26:59 · 95 阅读 · 0 评论