摘要: 反射: 常用于工厂,消除switch。 依赖注入(DependencyInjection):解决switch问题。原本需要专门的IoC容器提供,比如Spring.Net。简单的使用.Net技术“反射”既可以。格式: Assembly.Load(“程序集名称”).CreateInstance(“命名空间.类名称”) UsingS... 阅读全文
posted @ 2010-09-01 20:27 耀哥 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 抽象工厂模式: AbstractFactory提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。Demo: interface IFactory//抽象工厂接口,包含所有产品创建的抽象方法 {IUser CreateUser();IAdmin CreateAdmin(); }class SqlServerFactory : IFactory//具体工厂 {public IUser... 阅读全文
posted @ 2010-09-01 20:26 耀哥 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 事件委托: 委托就是一种引用方法的类型。一旦为委托分配了方法,委托将与该方法具有完全相同的行为。委托方法的使用可以像其他任何方法一样,具有参数和返回值。委托可以看作是对函数的抽象,是函数的“类”,委托的实例将代表一个具体的函数。 一个委托可以搭载多个方法,所有方法被一次唤起。 委托对象所搭载的方法并不需要属于同一个类。 委托对象所搭载的方法必须有相同的原型和形式,即相同的参... 阅读全文
posted @ 2010-09-01 20:25 耀哥 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 观察者模式: 又叫发布——订阅模式,定义一种1:n的依赖关系。 抽象的观察者模式可以使两者封装在独立的对象中,使他们各自独立的改变和复用。 解除耦合,让耦合的双方都依赖于抽象,使得各自的变化不会相互影响。Demo: 员工 abstractclass Observer {protected string name;protected Subject sub;public Ob... 阅读全文
posted @ 2010-09-01 20:23 耀哥 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 外观模式: 为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易调用。Demo: classProgram {static void Main(string[] args){Home h = new Home();h.InHome();h.OutHome();Console.ReadKey();} }//外观模式class Home {Key key;D... 阅读全文
posted @ 2010-09-01 20:21 耀哥 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。创建复杂对象的算法应该独立于该对象的组成部分以及他们的装配方式时适用的模式。Demo: //控制类class Director {private F f;public Director(F f){this.f = f;}public void createF() {f.f1();f.f2();f.f3();} }... 阅读全文
posted @ 2010-09-01 20:21 耀哥 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 模板方法: 定义一个操作的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。Demo1: classquestion {public void ShowQ(){Console.WriteLine("问题:");Console.WriteLine("答案:"+ShowA());}public virtual string ShowA(){r... 阅读全文
posted @ 2010-09-01 20:20 耀哥 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 原型模式: 在A a=new A();A b=a;是传引用而不是传值引用。 我们在A中加入clone()方法,使其传值。这就是原型//原型类abstract class Prototype {private string id;public Prototype(string id){this.id = id;}public string Id{ get { return id; }}//抽象类的关... 阅读全文
posted @ 2010-09-01 20:19 耀哥 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 工厂方法模式: 定义一个用于创建对象的接口,让子类决定实例化哪一个类 把选择放到了客户端。 与简单工厂的区别:克服简单工厂违背开放——封闭原则的缺点 简单工厂的最大优点在工厂中包含必要的逻辑判断,根据客户端的传入条件动态选择实例化的类,对客户端来说去除了与具体产品的依赖。实体和具体方法:class Operation {string num1 = string.Empty;... 阅读全文
posted @ 2010-09-01 20:18 耀哥 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 代理模式: 隐藏真实模块。方法: //抽象类abstract class Subject {public abstract void Request(); }//真实实现类class RealSubject : Subject {public override void Request(){Console.WriteLine("真实的请求");} }//代理类class Proxy : Subje... 阅读全文
posted @ 2010-09-01 20:17 耀哥 阅读(206) 评论(0) 推荐(0) 编辑