07 2012 档案

摘要:代理模式,为其他对象提供一种代理以控制对这个对象的访问。在访问对象时引入一定程度的间接性,因为间接性,可以附加多种用途。 //抽象类Subject类,定义了RealSubject和Proxy的公用接口,这样就在任何使用RealSubject的地方都可以使用Proxy abstract class Subject { public abstract void Request(); } //RealSubject类,定义Proxy所代表的真实实体 class RealSuject : Subject { public overr... 阅读全文
posted @ 2012-07-09 13:09 Xyang 阅读(128) 评论(0) 推荐(0) 编辑
摘要:概述:装饰模式是在不必改变原文件和使用继承的情况下,动态的扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。特点:1)装饰对象和真实对象有相同的接口。这样客户端对象就可以和真实对象相同的方式和装饰对象交互。2)装饰对象包含一个真实对象的索引。3)装饰对象接受搜有的来自客户端的请求。它把这些请求钻发给真实的对象。4)装饰对象可以在转发这些请求以前或者以后增加一些附加功能。这样就确保了在运行时,不能修改给定的对象的结构就可以在外部增加附加的功能。在面向对象的设计中,通常是通过继承来实现对给定类的功能拓展。 public abstract class Component... 阅读全文
posted @ 2012-07-06 15:26 Xyang 阅读(141) 评论(0) 推荐(0) 编辑
摘要:策略模式定义了一系列的算法,并将每一个算法封装起来,而且它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。抽象策略角色:策略类,通常由一个接口或者抽象类实现。具体策略角色:包装了相关的算法和行为。环境角色:持有一个策略类的引用,最终给客户端调用。示例:Stategy(抽象策略类)定义了一个公共接口,各种不同的算法以不同的方法实现这个接口,context使用这个接口调用不同的算法,一般使用接口或者抽象类实现。 //抽象算法类 public abstract class Starategy { //算法方法 public abstract... 阅读全文
posted @ 2012-07-04 11:57 Xyang 阅读(192) 评论(0) 推荐(0) 编辑
摘要:定义:类型属于创建型模式,又叫静态工厂方法模式。是由一个工厂对象决定创建出哪一种产品的实例。是工厂模式的特例。优点:工厂类,根据外界给定的信息,决定究竟应该创建那个具体类的对象。调用时候不必管这些对象究竟如何创建和组织,明确了各自的职责和权利,有利于整体软件体系结构的优化。缺点:由于工厂类集中了所有实例的创建逻辑,违反了高内聚责任分配原则,将全部创建逻辑集中到一个工厂类中;如果需要添加新的类,则需要更改工厂类了。因此一般只是很简单的情况下应用。实例:简单计算器,运算工厂类OperationFactory,Operation运算父类,OperationAdd加法子类……,Operation运算父 阅读全文
posted @ 2012-07-02 13:46 Xyang 阅读(128) 评论(0) 推荐(0) 编辑

hi