![](https://img-blog.csdnimg.cn/20191217111234945.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
通俗易懂的设计模式
设计模式是无数工程师实践的代码设计经验的总结,它是面向对象思想的高度提炼和模板化。使用设计模式将会让代码具有更高的可重用性、更好的灵活性和可拓展性、力求用更通俗的语言阐述难懂的概念;用更简单的语法实现复杂的逻辑;用更短小的代码写出强悍的程序! 希望能带给读者一种全新的体验和思考方式。
管理大亨
专注项目管理前言技术家事国事天下事事事关心
展开
-
设计模式(C#)之享元模式(Flyweight Pattern)
设计模式(C#)之享元模式(Flyweight Pattern)代码下载1.概念运用共享技术有效地支持大量细粒度的对象。2.类图Model.csusing System;using System.Collections.Generic;using System.Linq;using System.Text;namespace FlyweightPatter原创 2012-02-26 19:49:21 · 1278 阅读 · 0 评论 -
设计模式之外观模式(Facade Pattern)
设计模式之外观模式(Facade Pattern)代码下载1.概念为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。2.类图3.调用代码FacedCls objFace = new FacedCls(); this.Text = objFace.Division(new Model() { D1 =原创 2012-03-06 17:49:37 · 1013 阅读 · 0 评论 -
设计模式之中介者模式(Mediator Pattern)
设计模式之中介者模式(Mediator Pattern)代码下载1.概念用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。理解: 1.IBLL与IDAL类关联,封装BLL对象与DAL对象交互。 2.DAL类与BLL类不需要显式的相互应用。使得DAL与BLL没有依赖关系。 3.DAL与B原创 2012-03-03 11:58:27 · 1008 阅读 · 0 评论 -
设计模式之命令模式(Command Pattern)
设计模式之命令模式(Command Pattern) 源代码下载1.概念将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可取消的操作。2.类图3.调用代码 Use objUse = new Use(); this.listBox1.Items.Add(objUse.D原创 2012-03-01 15:40:28 · 998 阅读 · 0 评论 -
设计模式之状态模式(State Pattern)
设计模式之状态模式(State Pattern)代码下载1.概念允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它所属的类。2.类图代码下载原创 2012-02-29 21:22:26 · 1074 阅读 · 0 评论 -
设计模式之观察者模式(Observer Pattern)
设计模式之观察者模式(Observer Pattern) 代码下载1.概念定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新。2.模型图场景1:狗叫,主人醒,猫叫观察者:主人,猫;被观察者:狗狗叫主动通知:主人,猫。扩展点:观察者可扩展。场景2:观察者:主人,猫;被观察者:狗狗叫主动通原创 2012-02-25 17:09:28 · 1082 阅读 · 0 评论 -
设计模式之策略模式(Strategy Pattern)
设计模式之策略模式(Strategy Pattern)代码下载1.概念定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法的变化可独立于使用它的客户。2.类图3.调用 代码1 Model md = new Model(); md.D1 = 1; md.D2 =原创 2012-02-24 12:12:11 · 1147 阅读 · 2 评论 -
设计模式之模板设计模式
设计模式之模板设计模式代码下载1.概念定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。2.类图 代码下载原创 2012-02-21 14:17:53 · 942 阅读 · 0 评论 -
设计模式之单例模式
源代码下载1.概念单例模式:单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。2.结构图3.调用方法调用1Single.Instance.Test();调用2Single.Instance.Test();源代码下载原创 2012-02-16 13:36:29 · 860 阅读 · 0 评论 -
设计模式之工厂方法模式
设计模式之工厂方法模式源代码下载1.概念定义一个用于创建对象的接口,让子类决定将哪一个类实例化。Factory Method使一个类的实例化延迟到其子类。2.模型图3.调用代码调用1DataModel _Model = new DataModel();_Model.D1 = 10;_Model.D2 = 20;AbstractSumFactory o原创 2012-02-17 23:02:07 · 929 阅读 · 0 评论 -
设计模式之原型模式
代码下载1.概念用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象。2.类图代码下载原创 2012-02-19 10:30:07 · 863 阅读 · 0 评论 -
设计模式之桥接模式BridgePattern
设计模式之桥接模式BridgePattern代码下载BridgePattern1.概念将抽象部分与它的实现部分分离,使它们都可以独立地变化。这个概念有点抽象,桥接顾名思义,通过搭桥的方式让本不想关联的对象互相调用。可以联想牛郎织女鹊桥会。2.类图1). IDAL 与 IBLL两个类相互依赖,具体的实现DAL1(或DAL2)与BLL实现相互独立互不影响。2原创 2012-02-22 12:15:04 · 3070 阅读 · 3 评论 -
设计模式之解释器模式(Interpreter Pattern)
设计模式之解释器模式(Interpreter Pattern)代码下载1.概念给定一个语言, 定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。 2.类图将字符:"选择 字段 来自 表"解释成“Select * From Table”3.调用代码string strInput = "选择 字段 来自 表";原创 2012-03-08 09:03:28 · 1112 阅读 · 0 评论 -
设计模式之职责链模式(ChainOfResponsibilityPattern)
设计模式之职责链模式(ChainOfResponsibilityPattern)代码下载1.概念为解除请求的发送者和接收者之间耦合,而使多个对象都有机会处理这个请求。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它。2.类图模拟一个审批链条,雇员->领导->经理.金额审批权限分别为1000,2000,3000.超出权限自动转到上级审批。3.测试原创 2012-03-05 17:15:43 · 885 阅读 · 0 评论 -
设计模式之组合模式(Composite Pattern)
设计模式之组合模式(Composite Pattern)代码下载1.概念将对象组合成树形结构以表示“部分-整体”的层次结构。它使得客户对单个对象和复合对象的使用具有一致性。纯粹利用这种模式写程序的不常见,C#中TreeView与TreeNode类已经包装的功能足够强大。TreeNode就是这种模式的典型应用。2.类图 Model.cs using Syste原创 2012-03-04 17:56:47 · 1016 阅读 · 0 评论 -
设计模式之代理模式proxy
设计模式之代理模式proxy代码下载1.概念为其他对象提供一个代理以控制对这个对象的访问。2.类图3.调用代码 Model md = new Model(); md.ID = "1"; md.Name = "测试"; DALProxy objProxy = new D原创 2012-02-23 12:28:13 · 964 阅读 · 0 评论 -
设计模式之备忘录模式(Memento Pattern)
设计模式之备忘录模式(Memento Pattern) 代码下载1.概念在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到保存的状态。2.类图3.调用代码 private void button1_Click(object sender, EventArgs e) {原创 2012-03-02 21:15:47 · 936 阅读 · 0 评论 -
设计模式之装饰模式(Decorator Pattern)
设计模式之装饰模式(Decorator Pattern)代码下载1.概念动态地给一个对象添加一些额外的职责。就扩展功能而言,它比生成子类方式更为灵活。概念比较抽象,举个例子:实现一个算法1).定义一个实体Model数据结构,里面两个属性D1,D2。2).定义一个抽象类AbstractSum,算法接口Sum。3).Sum1算法1,求和D1+D2,算法2,求积D1*原创 2012-02-29 10:20:12 · 1309 阅读 · 3 评论 -
设计模式(C#)之迭代器模式(Iterator Pattern)
设计模式(C#)之迭代器模式(Iterator Pattern)代码下载1.概念提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示。2.类图3.代码Model.csusing System;using System.Collections.Generic;using System.Linq;using System.Text;na原创 2012-02-27 22:15:17 · 1558 阅读 · 2 评论 -
设计模式之抽象工厂模式
源代码下载1.概念提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。概念比较抽象难理解,换一个角度来理解。1)程序的本质是,数据结构+算法。把数据结构(AbstractModel)抽象出来,算法(AbstractSum)也抽象出来,形成抽象类模型。2)具体的实现都从抽象类中继承。模型(数据结构):NoticeModel,OtherModel继承自Ab...原创 2012-02-15 16:46:44 · 903 阅读 · 0 评论