上一页 1 2 3 4 5 6 7 8 ··· 11 下一页

适配器模式

摘要: [ Adapter ][ 客户希望的接口 : 该接口里定义了一些列客户程序需要的方法 。 原先已有类 : 该类是准备复用的类 , 已经拥有 , 短时间内无法改变 。 适配器类 : 该类继承了客户希望的接口 ,用来把已有的类转换成客户希望的接口 , 类里面有一个 原先已有类 的引用实例 , 生命周期当前类一样 , 在实现的接口方法里 , 去调用原有类的方法 , 实现封装 。 ][ 类适配器: 当客户在接口中定义了他期望的行为时,我们就可以应用适配器模式,提供一个实现该接口的类,并且扩展已有的类,通过创建子类来实现适配。 对象适配器:对象适配器”通过组合除了满足“用户期待接口”还降低了代码间的不. 阅读全文
posted @ 2012-02-21 13:01 多个马甲 阅读(163) 评论(0) 推荐(0) 编辑

状态模式

摘要: [ State ][ 行为模式 ] 当一个对象的内部状态改变时允许改变其行为 , 这个对象看起来像是改变了其类 。将与特定状态相关的行为局部化 , 并且将不同状态的行为分割开来 。定义(源于Design Pattern):当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。状态模式主要解决的是当控制一个对象状态的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化。意图:允许一个对象在其内部状态改变时改变它的行为适用场景: 1.一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为。 2.一个操作中含有庞大.. 阅读全文
posted @ 2012-02-21 12:57 多个马甲 阅读(229) 评论(0) 推荐(0) 编辑

抽象工厂模式

摘要: [ AbstractFactory ]提供一个创建一系列相关或相互依赖对象的接口 , 而无需指定它们具体的类 。抽 象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。抽象工厂模式是指当有多个抽象角色时,使用的一种工厂模式。抽象工厂模式可以向客户端 提供一个接口,使客户端在不必指定产品的具体的情况下,创建多个产品族中的产品对象。根据LSP原则,任何接受父类型的地方,都应当能够接受子类型。因 此,实际上系统所需要的,仅仅是类型与这些抽象产品角色相同的一些实例,而不是这些抽象产品的实例。换言之,也就是这些抽象产品的具体子类的实例。工厂类 负责创建抽象产品的具体子类的实例。当每个抽象产品 阅读全文
posted @ 2012-02-21 12:54 多个马甲 阅读(216) 评论(0) 推荐(0) 编辑

观察者模式

摘要: [ Observer ]观察者模式 — 又叫 发布-订阅(Publish/Subscribe)模式定义了一种一对多的依赖关系 , 让多个观察者对象同时监听某一个主题对象 。这个主题对象在状态发生变化时 , 会通知所有观察者对象 , 使它们能够自动更新自己 。[ 通知者 : 在通知者状态发生改变时 , 给观察者发送消息 观察站 : 在收到通知者的消息时 , 更新自己。]这种观察者模式 , 有个缺点就是 , 具体的观察者执行的更改方法名必须是 Update , 如果想执行其他方法的更改可以用 委托 。使用了委托的观察者模式 :委托观察者模式 , 减少了 通知者 和 观察者 之间的耦合委托观察者 , 阅读全文
posted @ 2012-02-21 12:17 多个马甲 阅读(290) 评论(0) 推荐(0) 编辑

建造者模式(生成器模式)

摘要: [ Builder ][ 建造者模板接口 : 定义了一系列需要具体实现的虚方法 具体的建造者 : 实现了建造者模板接口 ,不同的实现细节 建造指挥者 : 用于按照一定的顺序 , 生成对象 ]将一个复杂对象的构建与它的表示分离 , 使得同样的构建过程可以创建不同的表示 。创建建设者接口 , 定义了一些列构建需要的方法创建构建子类 , 实现建设者接口 , 实现构建细节创建建设者指挥官类 , 通过传递建设者接口对象 , 定义了具体构建的顺序源码 :// <summary> //建造者模板接口 , 定义了一系列需要具体实现的虚方法 // </summary> public in 阅读全文
posted @ 2012-02-21 12:09 多个马甲 阅读(222) 评论(0) 推荐(0) 编辑

外观模式

摘要: [ Facade ][ 结构型模式 ][ 高层接口 : 给子系统的一组接口提供一个一致的界面(方法) , 在客户端程序中 , 直接调用高程接口的方法 , 可以一次性调用多个子系统的接口 , 降低耦合度 子系统 : 具体的实现者]要点:1. 外观模式为复杂子系统提供了一个简单接口,并不为子系统添加新的功能和行为。2. 外观模式实现了子系统与客户之间的松耦合关系。3. 外观模式没有封装子系统的类,只是提供了简单的接口。如果应用需要,它并不限制客户使用子系统类。因此可以在系统易用性与通用性之间选择。4. 外观模式注重的是简化接口,它更多的时候是从架构的层次去看整个系统,而并非单个类的层次。5. 外观 阅读全文
posted @ 2012-02-21 12:06 多个马甲 阅读(154) 评论(0) 推荐(0) 编辑

模板方法模式

摘要: [ Template ][ 抽象父类【抽象模板】 : 1 定义了一个或多个抽象操作 , 以便让子类实现 。这些抽象操作叫做基本操作 , 它们是一个顶级逻辑的组成部分。 2 定义并实现了一个模板方法 。这个模板方法一般是一个具体方法 , 它给出了一个顶级逻辑的骨架 , 而逻辑的组成步骤在相应的抽象操作中 , 推迟到子类实现 。顶级逻辑也有可能调用一些具体方法 。 具体的子类【具体模板】 : 1 实现父类所定义的一个或多个抽象方法 , 它们是一个顶级逻辑的组成部分。 2 每一个抽象模板角色都可以有任意多个具体模板角色与之对应 , 而每一个具体模板角色都可以给出这些抽象方法 (也就是顶级逻辑的组.. 阅读全文
posted @ 2012-02-21 12:04 多个马甲 阅读(183) 评论(0) 推荐(0) 编辑

原型模式

摘要: [ Prototype ]用原型实例指定创建对象的种类 , 并且通过拷贝这些原型创建新的对象。原型模式其实就是从一个对象再创建另外一个可定制的对象 , 而且不需知道任何创建的细节原型模式分为 : 浅拷贝 和 深拷贝浅拷贝 : 值类型 会逐位复制 , 引用类型 则复制引用但不复制引用的对象 , 因此 原始对象及其复本引用同一对象。深拷贝 : 把引用对象的变量指向复制过的新对象 , 而不是原有的被引用的对象。 必须实现 ICloneable 接口源码:class Work : ICloneable { private string _timeArea; private string _co... 阅读全文
posted @ 2012-02-21 12:02 多个马甲 阅读(188) 评论(0) 推荐(0) 编辑

工厂模式

摘要: [ Factory ][ 创建型模式 ][ 计算接口 : 定义了一系列的计算方法 具体计算类 : 继承了计算接口 , 实现了不同的计算方法 对象创建接口 : 定义了一个用于创建对象方法的接口 对象创建类 : 继承了对象创建接口 , 实现了对象创建方法 , 每一个 "具体计算类" 都有一个具体的对象创建工程类 。]定义一个用于创建对象的接口 , 让子类决定实例化哪一个类 。工厂方法使一个类的实例化延迟到其子类 。比简单工厂模式更容易扩展 , 更符合 开放扩展 - 封闭修改原则 简单工厂模式 扩展时需要修改工厂类的判断业务 , 违背了 开放扩展 - 封闭修改 原则创建计算接口 阅读全文
posted @ 2012-02-21 11:57 多个马甲 阅读(159) 评论(0) 推荐(0) 编辑

代理模式

摘要: [ Proxy ][ 抽象接口 : 由被代理类抽象出来的接口 , 被代理类实现了所有方法 被代理类 : 原始需要调用的对象 , 里面定义了一些列方法 代理类 : 同样继承了抽象接口 , 并且在类的内部有一个被代理类的引用 , 生命周期和代理类一样 , 在代理类继承接口的方法里 , 调用被代理类的方法]代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。所谓代理 , 就是一个人或者一个机构代表另一个人或者另一个机构采取行动 。在一些情况下 , 一个客户不想或者不能改直接引用一个对象 , 而代理对象可以在客户端或目标对象之间起到中介的作用。抽象出 实际调用类(Autcal) 的要 阅读全文
posted @ 2012-02-21 11:54 多个马甲 阅读(173) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 11 下一页