摘要:
定 义:提供一种方法顺序访问一个集合对象中的各个元素,而又不暴露该对象的内部元素。C#中实现,foreach 遍历 阅读全文
摘要:
定 义:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 有些国家用110V电压,而我们国家用的是220V,但是我们的电器,比如笔记本是不能什么电压都能使用的,但是国家不同,电压可能不同也是事实,于是用了一个电源适配器,只要是电,不管多少伏,都能把电源变成需要的电压,这就是电源适配器的作用,适配器的意思就是使一个东西适合另一个东西的东西。结构图:Target(这是客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口) class Target { public virtual void Requ... 阅读全文
摘要:
定 义:当一个对象内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。 状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况, 把状态的判断逻辑转移到表示不同状态的一系列子类中,可以把复杂的逻辑简化。结构图:示例结构图:状态类: //抽象状态 public abstract class State { public abstract void WriteProgram(Work w); } //上午工作状态 public class ForenoonState : State { public overr... 阅读全文
摘要:
定 义:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。结构图:示例结构图:实体类: class User { public int Id { get; set; } public string Name { get; set; } } class Department { public int Id { get; set; } public string Name { get; set; } }View Code 数据访问接口: interface IUser { v... 阅读全文
摘要:
定 义:定义了一种一对多的依赖关系,让多个观察者对象同时监听某一主题对象。这个主题对象在状态发生 变化时,会通知所有观察者对象,使他们能够自动更新自己。结构图:抽象主题类:abstract class Subject { private IList observers = new List(); /// /// 增加观察者 /// /// public void Attach(Observer observer) { observers.Add(observer)... 阅读全文
摘要:
定 义:将一个复杂对象的构建与它的表示分离,使得同一构建过程可以创建不同的表示。结构图:产品类: class Product { //部件集合 List parts = new List(); /// /// 添加部件 /// /// public void Add(string part) { parts.Add(part); } public void Show() { Consol... 阅读全文
摘要:
定 义:为子系统的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统 更加容易使用。结构图:四个子系统类: class SubSystemOne { public void MethodOne() { Console.WriteLine("子系统方法1"); } } class SubSystemTwo { public void MethodTwo() { Console.WriteLine("子系统方法2"); }... 阅读全文
摘要:
定义:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。 模板方法使子类可以不改变一个算法的结构即可重定义该算法中的一些特定步骤。结构图:AbstractClass.cs: abstract class AbstractClass { public abstract void PrimitiveOperation1(); public abstract void PrimitiveOperation2(); public void TemplateMethod() { PrimitiveOperation1... 阅读全文
摘要:
定义:用原型示例指定创建对象的种类,并通过拷贝这些原型创建新的对象。原型模式其实就是从一个对象再创建一个可定制的对象,而不需要知道任何创建的细节。结构图:Prototype.cs:abstract class Prototype { private string id; public Prototype(string id) { this.id = id; } public string Id { get { return id; } } ... 阅读全文
摘要:
定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类。 工厂方法使一个类的实例化延迟到其子类。结构图:示例:HTML代码: + - * / = View Code IFactory.cs:interface IFactory { Operation CreateOpertion(); }AddFactory.cs:public class ... 阅读全文