设计模式
田猿笔记
这个作者很懒,什么都没留下…
展开
-
设计模式系列随笔- Chain Of Responsibility 职责链模式
设计模式系列随笔- Chain Of Responsibility 职责链模式 请求的发送者与接受者 某些对象请求的接受者可能多种多样,变化无常…… 动机(Motivation) 在软件构建过程中,一个请求可能被多个对象处理,但是每个请求在运行时只能有一个接受者,如果显式指定,将必不可少地带来请求发送者与接受者的紧耦合。如何使请求的发送者不需要指定具体转载 2007-12-29 19:49:00 · 560 阅读 · 0 评论 -
观察者模式(Observer Pattern)
一、观察者模式简介(Brief Introduction)观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态发生变化的时,会通知所有观察者对象,使他们能够自动更新自己。二、解决的问题(What To Solve)当一个对象的改变需要同时改变其他对象的时候,而且不知道有多少对象有待改变时,应该考虑使用观察者模式。观察者模式所做的工作原创 2010-04-08 15:06:00 · 350 阅读 · 0 评论 -
备忘录模式
一、备忘录模式简介(Brief Introduction)备忘录模式(Memento Pattern),在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以就该对象恢复到原先保存的状态。二、解决的问题(What To Solve) 当系统功能比较复杂,而且需要记录历史属性以便当需要时做恢复动作。Originator可以根据保存的M原创 2010-04-07 17:07:00 · 408 阅读 · 0 评论 -
中介者模式
中介者模式属于行为型模式,其意图是用一个中介对象封装一系列的对象交互。中介者使用各对象不需要显式的相互调用,从而使其耦合松散,而且可以独立地改变他们之间爱女的交互。 面向对象设计鼓励将行为分布到各个对象中,这种分布可能会导致对象间有许多连接,在最坏的情况下,每一个对象都知道其他所有的对象,这无疑复杂化了对象之间的联系。虽然将一个系统分割成许多对象通常可以增强可复用性,但是原创 2010-04-07 15:47:00 · 351 阅读 · 0 评论 -
设计模式学习笔记清单
http://www.cnblogs.com/wsdj-ITtech/archive/2009/10/19/1585708.html原创 2010-04-15 14:10:00 · 448 阅读 · 0 评论 -
策略模式
现在将Discuz!NT的缓存架构说明如下,先请大家看一下Discuz!NT架构图: 其实这个构架说白了就是一个标准的“策略”模式,为了对比方便,我把策略模式的结构图放在下面:转载 2010-04-14 15:34:00 · 354 阅读 · 0 评论 -
外观模式(facade pattern)
一、外观模式简介(Brief Introduction)外观模式,为子系统的一组接口提供一个统一的界面,此模式定义了一个高层接口,这一个高层接口使的子系统更加容易使用。 二、解决的问题(What To Solve)1、分离不同的两个层 典型的分层例子是Net三层架构,界面层与业务逻辑层分离,业务逻辑层与数据访问层分类。这样可以为子系统提供统一的界面和接口,降原创 2010-04-01 14:15:00 · 451 阅读 · 0 评论 -
装饰者模式(Decorator Pattern)
一、装饰模式简介(Brief Introduction)动态地给一个对象添加一些额外的职责。优点:把类中的装饰功能从类中搬移出去,这样可以简化原有的类。有效地把类的核心功能和装饰功能区分开了。 二、解决的问题(What To Solve)已经开发完毕的对象,后期由于业务需要,对旧的对象需要扩展特别多的功能,这时候使用给对象动态地添加新的状态或者行为(即装饰模式)方法,而不原创 2010-04-01 11:35:00 · 392 阅读 · 0 评论 -
模板方法模式(Template Mothed Pattern)
一、模板方法模式简介(Brief Introduction)模板方法模式(Template Method Pattern),定义一个操作中的算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可以重定义算法的某些特定步骤。模板方法模式把不变行为搬移到超类,从而去除子类中的重复代码,实际上模板方法模式就是提供了一个代码复用平台。原创 2010-04-02 12:20:00 · 410 阅读 · 0 评论 -
代理模式(Proxy Pattern)
duction)代理模式(Proxy Pattern)对其他对象提供一种代理以控制对这个对象的访问。)、远程代理远程代理,也就是为了一个对象在不同的地址空间提供局部代表。这样可隐藏一个对象存在与不同地质空间的事实,隐藏对象所在的地址空间。比如.Net Web Service ,当一个项目在加入一个Web引用,引用Web Service的时候会在项目中生成一个WebRefe原创 2010-04-02 11:33:00 · 380 阅读 · 0 评论 -
关于23种设计模式的有趣见解
创建型模式1、FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如转载 2010-04-02 10:11:00 · 402 阅读 · 0 评论 -
适配器模式(Adapter Pattern)
一、适配器模式简介(Brief Introduction)适配器模式,将一个类装换成客户期望的另外一个接口。Adapter模式使的原本由于接口不兼容而不能工作的那些类可以一起工作。二、解决的问题(What To Solve)1、使用第三方组件,而这个组件的接口与目前系统接口不兼容(如方法与系统方法不一致等),可以使用适配器模式解决接口不兼容问题。2、使用早前项目一些有用的类,原创 2010-03-30 16:19:00 · 391 阅读 · 0 评论 -
状态模式(State Pattern)
一、状态模式简介(Brief Introduction)状态模式(State Pattern),当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。二、解决的问题(What To Solve)状态模式主要解决的是当控制一个对象状态装换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简单化。当一个对象行为取决原创 2010-04-08 16:49:00 · 426 阅读 · 0 评论 -
建造者模式(Builder Pattern)
一、建造者模式简介(Brief Introduction)建造者模式(Builder Pattern),将一个复杂对象的构建与它的表示分离,使的同样的构建过程可以创建不同的表示。建造者模式的优点是:使得建造代码与表示代码分离,由于建造者隐藏了该产品是如何组装的,所以如要改变一个产品的内部表示,只需要再定义一个具体的建造者就可以了。二、解决的问题(What To Solve)主原创 2010-03-30 12:52:00 · 438 阅读 · 0 评论 -
设计模式总结
(1)桥接模式(结构型模式) 1.主要应该是将公共方法抽象成一个类。 2.将事物按不同纬度的变化。 3.理论是:组合优于继承。 (2)Strategy(策略模式)1.将方法封装为类2.策略模式(Strategy):它定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。3. 优点: 1、 简化了单元测试,因为每个算法都有自己的类,可以通过自原创 2009-12-12 11:52:00 · 425 阅读 · 0 评论 -
Dot Net 设计模式—简单工厂
Dot Net 设计模式—简单工厂 1.前言1.1概要 简单工厂的作用是实例化对象,而不需要客户了解这个对象属于哪个具体的子类。 在GOF的设计模式中并没有简单工厂,而是将其作为工厂方法的一个特例加以解释。可以这样理解,简单工厂是参数化的工厂方法。1.2使用场合 简单工厂实例化的类具有相同的接口,类类有限并且基本不需要扩展时,可以使用简单工厂。转载 2008-07-16 10:58:00 · 531 阅读 · 0 评论 -
在重构的过程中,什么情况下应该使用设计模式?应该用哪种模式?
在重构的过程中,什么情况下应该使用设计模式?应该用哪种模式?转载 2010-06-22 00:03:00 · 882 阅读 · 0 评论