设计模式
最初的梦想zsq
..
展开
-
享元模式
享元模式: 运用共享技术有效的支持大量细粒度的对象UML结构图: 基本代码: public abstract class Flyweight { public abstract void Operation(int extrinsicstate); } public class ConcreteFlyweight : Flyweight {原创 2016-07-13 11:18:04 · 191 阅读 · 0 评论 -
中介者模式
中介者模式:用一个中介者对象来封装一系列的对象交互。中介者使各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。UML结构图:代码: //抽象中介者类 public abstract class Mediator { public abstract void Send(string message,Colleague colleague)原创 2016-07-12 16:50:33 · 165 阅读 · 0 评论 -
职责链模式
职责链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象练成一条链,并沿着这条链传递该请求,直到有一个对象处理它。该模式UML结构图:基本代码: public abstract class Handler { protected Handler successor; //设置继任者 public voi原创 2016-07-12 11:40:50 · 185 阅读 · 0 评论 -
简单工厂模式
首先做道题。 使用面向对象的思想做一个实现加减乘除的计算机功能。 public class Operation { private double numberA = 0; public double NumberA { get { return numberA; } set { numberA原创 2016-06-07 09:49:55 · 188 阅读 · 0 评论 -
原型模式
原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象一、定义解释:有一个设计非常复杂的对象,如果需要得到多个这样对象的时候,可以先创建一个原型对象,然后使用原型对象clone出新的对象,从而实现减少内存消耗和类实例复用的目的。UML结构图 public abstract class Prototype { private string id;转载 2016-06-12 15:25:32 · 271 阅读 · 0 评论 -
命令模式
命令模式:将一个请求封装成一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作解下来: 一家烧烤店,人们去那里吃烧烤,需要点菜的名字和传唤服务员告知厨师烧烤哪些东西。 //烤肉串者 public class Barbecuer { //烤羊肉 public void BakeMutton()原创 2016-06-12 15:06:32 · 264 阅读 · 0 评论 -
备忘录模式
备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。 这样以后就可将该对象恢复到原来的状态。Created with Raphaël 2.1.0OriginatorOriginatorMementoMementoCaretakerCaretaker负责创建一个备忘录Memento,用以记录当前时刻的内部状态负责保存好备忘录Memento负责存储originator原创 2016-06-02 11:12:46 · 260 阅读 · 0 评论 -
抽象工厂模式
抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们的类 该模式优缺点: 最大的好处是易于交换产品系列,由于具体工厂类, 在一个应用中只需要初始化的时候出现一次,这就使得改变一个应用的具体工厂变得非常容易,它需要在改变具体工厂即可使用不同的产品配置。 它让具体的创建实例过程与客户端分离,客户端是通过他们的抽象接口操纵实例,产品的类名被具体的工厂实现分离,不会出现在客户代码中原创 2016-06-03 17:15:05 · 329 阅读 · 0 评论 -
单例模式
单例模式: 保证一个类中只有一个实例,并提供一个访问它的全局访问点 通常我们可以让一个全局变量使的一个对象被访问,但它不能防止你实例化多个对象。一个最好的办法就是。让类自身负责保存它的唯一实例。这个类可以保证没有其他实例可以被创建,并且它可以提供一个访问该实例的方法。 public class Singleton { private static Singleton sl原创 2016-06-03 17:25:56 · 209 阅读 · 0 评论 -
设计模式之组合模式
组合模式:将对象组合成树形结构以表示‘部分–整体’的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。Created with Raphaël 2.1.0LeafLeafComponentComponentCompositeComposite继承继承对方并且与父类呈聚合关系抽象类: Component: 方法: Add(Component c) Remove(Component原创 2016-06-03 10:44:49 · 233 阅读 · 0 评论 -
基本原则
单一职责原则:意思是,就一个类而言,印有一个引起它变化的原因。 开放封闭原则:对扩展开放,对修改封闭 依赖倒转原则:依赖于抽象而非依赖于具体 里氏替换原则:子类可以替换它们的父类型 迪米提法则:如果两个类不必直接彼此进行通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一类的某一个方法的话,可以通过第三者转发这个调用原创 2016-06-06 13:55:00 · 302 阅读 · 0 评论 -
设计模式之状态模式
状态模式状态模式: 当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。 状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况,把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断简单化。Created with Raphaël 2.1.0ContextContextState(handle())State(handle())ConcreteSta原创 2016-05-31 16:24:40 · 203 阅读 · 0 评论 -
工厂方法模式
工厂方法模式,定义一个用于创建对象的接口,让子类决定实例化哪一个类。 工厂方法是一个类的实例化延迟到子类以上三个图的意思是, 运算类的子类继承父类(运算类本身),和工厂类的子类继承父类(工厂类本身). 再接着,工厂类的子类实例化对应的运算类子类。 代码:关于计算机加减乘除问题 public class Operation { private double number原创 2016-06-02 11:33:51 · 298 阅读 · 0 评论