创建型模式 -> 结构型模式/行为模式

摘要: 1)创建型模式的重点在创建对象上,相对来说重点突出的比较明显。2)由于程序是数据与操作,所以数据(结构型模式)与操作(行为模式) 总是有点瓜葛。有时候脑中要没个重点不易突出。在单个的结构型模式或行为模式中,要主观地(意识上)将重点或者说注意力放在结构或行为上。这样比较容易内化。3)分别内化之后,可能就比较容易从不同的视角将复杂的设计解构并重构。 阅读全文
posted @ 2012-10-06 15:03 caigen 阅读(823) 评论(0) 推荐(0) 编辑

单件模式 Singleton

摘要: 故事: 每个公司/工厂通常只有一个前台(有的没有),有或者没有这是一个问题。建模: 前台:能够提供各种服务的前台。类图:实现:FrontDesknamespace Singleton{ public class FrontDesk { static FrontDesk current; private FrontDesk() { Console.WriteLine("新建前台成功"); } public static FrontDesk Instance() { ... 阅读全文
posted @ 2012-10-05 16:46 caigen 阅读(176) 评论(0) 推荐(0) 编辑

生成器模式 Builder

摘要: Builder 生成器模式或者建造者模式,个人感觉有组装的意思,组建者、组装器。故事: 为了生产一批鞋子,由于鞋子太过复杂,通常是一部分一部分的生产,然后组装。即先生产好鞋身和鞋带,然后将鞋身和鞋带组装一起。建模: 鞋子,包括鞋身和鞋带。 鞋子组装器:能够生产鞋身部分,生产鞋带部分,并组装。 控制中心:能够控制鞋子组装器,生产鞋身和鞋带的顺序。鞋子从这儿出货。 你是客户,想要生产一双鞋子。类图:实现:Directornamespace Builder{ public static class Director { public static Shoes Co... 阅读全文
posted @ 2012-10-05 16:17 caigen 阅读(1020) 评论(0) 推荐(0) 编辑

原型模式

摘要: 故事: 鞋子厂来了一个订单,需要一批(2双)运动鞋和一批(2双)休闲鞋。需要同样鞋码,但颜色不一样。 于是,老板决定使用同样的鞋模来生产小样,然后染色。建模: 鞋子模型(原型) ——》 定码 运动鞋 ——》染色 休闲鞋 ——》染色类图:实现:Shoesnamespace Prototype{ public abstract class Shoes { public int size; protected string color; public string Color { set... 阅读全文
posted @ 2012-10-04 22:41 caigen 阅读(225) 评论(0) 推荐(0) 编辑

抽象工厂模式

摘要: 故事: 以前有个定制鞋子的工厂,客户满意度很高,后来有的客户来的时候想定制套装(包括鞋子和衬衫)。建模: 工厂前台接待处。 工厂套装协调部门。 生产线。 鞋。 很多喜欢个性和变化人的都成了这个定制工厂的客户。类图:实现:HelpDesknamespace AbstractFactory{ class HelpDesk { SuitDepartment sd; public HelpDesk() { sd = new SuitDepartment(); }... 阅读全文
posted @ 2012-10-04 20:44 caigen 阅读(239) 评论(0) 推荐(0) 编辑

工厂方法模式

摘要: 故事: 有个定制鞋子的工厂(还是那个工厂)(因为使用了设计模式应对了各种变化)效益比较好,决定把生产部门分成两个部门(休闲鞋部门/运动鞋部门)。每个部门生产相应的鞋子类型。建模: 工厂运动鞋生产部门/工厂休闲鞋生产部门。 工厂前台接待处。 鞋子。 你还是这个工厂的客户。类图:实现:HelpDesknamespace FactoryMethod{ public class HelpDesk { ArrayList al = new ArrayList(); public HelpDesk() { SportsS... 阅读全文
posted @ 2012-10-04 18:55 caigen 阅读(232) 评论(0) 推荐(0) 编辑

简单工厂模式

摘要: 设计模式需要认知理解并内化。较为简单并符合思维习惯的模型易于理解接受。故事:有个工厂,提供定制鞋子(休闲鞋/运动鞋)的服务。你可以定制你喜欢的鞋子。建模:简单工厂,确实就是一个很简单的工厂。鞋子,有运动鞋和休闲鞋。你是这个工厂的客户。类图:实现:ShoesFactorynamespace SimpleFactory{ static class ShoesFactory { public static Shoes produceShoes(string shoesType) { Console.WriteLin... 阅读全文
posted @ 2012-10-04 15:27 caigen 阅读(187) 评论(0) 推荐(0) 编辑

mercurial == hg

摘要: "Mercurial is a free, distributed source control management tool."http://mercurial.selenic.com/ 阅读全文
posted @ 2012-09-22 20:06 caigen 阅读(141) 评论(0) 推荐(0) 编辑

d3.js库的选择器实现

摘要: 将d3.v2.js1383行附近代码转换如下:var d3_select = function(s, n) { return n.querySelector(s);}var d3_selectAll = function(s, n) { return n.querySelectorAll(s);}var d3_selectRoot = document.documentElement;var d3_selectMatcher = d3_selectRoot.matchesSelector || d3_selectRoot.webkitMatchesSelector || d3_... 阅读全文
posted @ 2012-08-31 16:28 caigen 阅读(1025) 评论(0) 推荐(0) 编辑

SqlDataSource的ConnectionString与Provider

摘要: web.config里:(未使用connectionStrings节点)<appSettings><add key="ConnectionString" value="未写出provider=blabla."/></appSettings> aspx里:ProviderName="System.Data.OleDb" aspx.cs里:StringBuilder sb = new StringBuilder(Application["DSN"].ToString());sb.Ap 阅读全文
posted @ 2012-08-29 13:49 caigen 阅读(572) 评论(0) 推荐(0) 编辑