摘要: 理解:当对象有多个状态时,把每个状态的行为写到各自的状态类里面去,当切换状态时,调用的行为也就自动切换了。 和策略模式很像,不过策略是针对外部的,而状态是针对内部的 代码: 客户端代码: { DesignMode.State.OperatingSystem os = new Windows(); C 阅读全文
posted @ 2012-03-05 15:08 无主之城 阅读(958) 评论(0) 推荐(0) 编辑
摘要: 理解:建立一个工厂类,并在工厂类中通过switch 语句来决定返回何种子类的实例 代码: 客户端代码: private void btn_SimpleFactory_Click(object sender, EventArgs e) { Goods goods = SimplyFactory.Cre 阅读全文
posted @ 2012-03-02 17:22 无主之城 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 理解:为每种商品建立一个工厂,这样如果要加新的商品,就不用去改以前的工厂类代码. 代码: using System.Collections.Generic; using System.Text;using System.Windows.Forms;namespace DesignMode.Facto 阅读全文
posted @ 2012-03-02 17:19 无主之城 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 理解:当有几套不同的方案需要随时切换时,可以使用该模式,比如一个手机里面的软件,当从一个操作系统切换到另一个操作系统,不需要去改每一个软件,只需要改创建所有软件的那个工厂就行了。 代码: 客户端代码: 阅读全文
posted @ 2012-03-02 16:30 无主之城 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 理解:订阅-发布。把所有需要通知的对象添加到发布者类里面。发布者更改自己状态后通知观察者 代码: 客户端代码: 阅读全文
posted @ 2012-03-02 01:19 无主之城 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 理解:整体与部分的层次关系,且树形关系中的所有对象都有相同的操作 代码: 客户端代码: 阅读全文
posted @ 2012-03-01 23:46 无主之城 阅读(2339) 评论(0) 推荐(0) 编辑
摘要: 理解:有大量相同类型对象需要创造出来时,可以一种类型只保存一个实例,可以改它的外部状态(如位置,名称等) 代码: 客户端代码: private void btn_Flyweight_Click(object sender, EventArgs e) { ChessmanFactory factory 阅读全文
posted @ 2012-03-01 22:54 无主之城 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 理解:元素是固定的,作用于元素的状态是可以变化的。就好比一日三餐(元素)是固定的,但是每一餐吃的食物(状态)又是可以不断变化的。 代码: 客户端代码: private void btn_Visitor_Click(object sender, EventArgs e) { Noodle noodle 阅读全文
posted @ 2012-03-01 13:47 无主之城 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 理解:构建一个产品的步骤是稳定的,但是每个产品因为每一步的不同而产生出不同形状。比如台球的一次击打过程就是一个产品,产品的过程包括“瞄准--运杆--出杆”三个步骤。虽然我和丁俊晖都要执行这三个步骤,但是每一步小丁做得都比我好,所以小丁的这次击打肯定就比我的好。 代码: 客户端代码: 阅读全文
posted @ 2012-03-01 01:26 无主之城 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 理解:旧的接口不能被客户直接调用,需要第三方类进行转换。就好像USB转换器一样 代码: 客户端代码: 阅读全文
posted @ 2012-03-01 00:38 无主之城 阅读(796) 评论(0) 推荐(0) 编辑