泡泡

              宠辱不惊-闲看庭前花开花落
                           去留无意-漫观天外云展云舒
  首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2007年9月21日

摘要: 访问者模式的目的是: 不改变一个层次结构中的类,定义一个新的操作。 实例代码: abstract class Element { public abstract void Accept(IVisitor visitor); } class Employee : Element { string name; double income; int vacationDay... 阅读全文

posted @ 2007-09-21 17:20 AlanPaoPao 阅读(135) 评论(0) 推荐(0)

摘要: 模板方法模式的目的是: 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。 实例代码: abstract class DataAccessObject { protected string connectionString; protected DataSet dataSet; public virtual void Connect() { connec... 阅读全文

posted @ 2007-09-21 17:07 AlanPaoPao 阅读(171) 评论(0) 推荐(0)

摘要: 策略模式的目的是: 将代码逻辑和算法逻辑代码分离开来。 实例代码: abstract class SortStrategy { public abstract void Sort(ArrayList list); } class QuickSort : SortStrategy { public override void Sort(ArrayList list) { ... 阅读全文

posted @ 2007-09-21 16:58 AlanPaoPao 阅读(121) 评论(0) 推荐(0)

摘要: 状态模式的目的是: 引入一组表示对象状态的类,把于状态相关的代码逻辑分配到这些类中。 实例代码: class Account { private State state; private string owner; public Account(string owner) { this.owner = owner; state = new Silv... 阅读全文

posted @ 2007-09-21 16:46 AlanPaoPao 阅读(108) 评论(0) 推荐(0)

摘要: 观察者模式的目的是: 当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。 实例代码: interface IInvestor { void Update(Stock stock); } abstract class Stock { protected string symbol; protected double price; private ... 阅读全文

posted @ 2007-09-21 15:42 AlanPaoPao 阅读(125) 评论(0) 推荐(0)

摘要: 备忘录模式的目的是: 为一个对象提供状态储存和状态恢复的手段。 实例代码: class Memento { private string name; private string phone; private double budget; public Memento(string name, string phone, double budget) { ... 阅读全文

posted @ 2007-09-21 15:12 AlanPaoPao 阅读(162) 评论(0) 推荐(0)

摘要: 中介者模式的目的是: 把一个特定对象集合的职责集中,进行封装。 实例代码: abstract class AbstractChatroom { public abstract void Register(Participant participant); public abstract void Send(string from, string to, string mes... 阅读全文

posted @ 2007-09-21 14:56 AlanPaoPao 阅读(215) 评论(0) 推荐(0)

摘要: 迭代器模式的目的是: 提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。 实例代码: class Item { string name; public Item(string name) { this.name = name; } public string Name { get { return name; } ... 阅读全文

posted @ 2007-09-21 14:42 AlanPaoPao 阅读(212) 评论(0) 推荐(0)

摘要: 解释器模式的目的是: 根据一组合成规则,生成对象。 实例代码: class Context { private string input; private int output; public Context(string input) { this.input = input; } public string Input { get {... 阅读全文

posted @ 2007-09-21 14:21 AlanPaoPao 阅读(125) 评论(0) 推荐(0)

摘要: 命令模式的目的是: 在一个对象中封装一个请求。 实例代码: class Calculator { private int curr = 0; public void Operation(char @operator, int operand) { switch (@operator) { case '+': curr += operand; ... 阅读全文

posted @ 2007-09-21 14:06 AlanPaoPao 阅读(126) 评论(0) 推荐(0)

摘要: 责任链模式的目的是: 为每个对象确定一个职责,并减少每个对象的职责。 实例代码: class Project { private int number; //项目编号 private double amount; //预算 private string purpose; //说明 public Project(int number, double amou... 阅读全文

posted @ 2007-09-21 13:32 AlanPaoPao 阅读(105) 评论(0) 推荐(0)

摘要: 代理模式的目的是: 为对象提供一种代理以控制对这个对象的访问。 实例代码: public interface IMath { double Add(double x, double y); double Sub(double x, double y); double Mul(double x, double y); double Div(double x, doub... 阅读全文

posted @ 2007-09-21 08:52 AlanPaoPao 阅读(103) 评论(0) 推荐(0)

2007年9月19日

摘要: 享元模式的目的是: 使多个客户共享使用数量有限的对象。 实例代码(类似于String类中实例): abstract class Character { protected char symbol; protected int width; protected int height; protected int ascent; protected int desc... 阅读全文

posted @ 2007-09-19 17:13 AlanPaoPao 阅读(105) 评论(0) 推荐(0)

摘要: 外观模式的目的是: 为子系统中的一组接口提供一个高层接口,使得这一子系统更加容易使用。 实例代码: class User { private string name; public User(string name) { this.name = name; } public string Name { get { return this.na... 阅读全文

posted @ 2007-09-19 16:43 AlanPaoPao 阅读(159) 评论(0) 推荐(0)

摘要: 装饰模式的目的是: 动态地给一个对象添加一些额外的职责(比生成子类更为灵活)。 实例代码: interface IItemLibrary { void Display(); int ItemCount { get; set; } double Price { get; set; } } abstract class ItemLibrary : IItemLibrary ... 阅读全文

posted @ 2007-09-19 15:07 AlanPaoPao 阅读(212) 评论(0) 推荐(0)