摘要:一、定义 运用共享技术有效地支持大量细粒度的对象。 二、适用场景 系统会用到大量相同或相似的对象。 对象创建比较耗时。 三、目的 减少创建对象的数量。 对象全局共享。 四、UML类图 FlyweightFactory:享元工厂,用来创建并管理Flyweight对象 Flyweight:享元类的基类或
阅读全文
摘要:一、定义 将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得对单个对象和组合对象的使用具有一致性。 二、应用实例 文件系统中的文件与文件夹、Winform中的简单控件与容器控件、XML中的Node和Element等。 透明模式 透明模式是把组合使用的方法放到抽象类中,使得叶子对象和枝干
阅读全文
摘要:一、定义 桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立地变化。 UML类图 Abstraction:抽象化角色,并保存一个对实现化对象的引用。RefinedAbstraction:修正抽象化角色,改变和修正父类对抽象化的定义。Implementor:实现化角色,这个角色给出实现化角色的接
阅读全文
摘要:一、定义 装饰器模式动态地给一个对象增加一些额外的职责。就增加功能而言,装饰器模式比生成子类更为灵活。 二、UML类图 三、示例 需求:假设开一个奶茶店,奶茶种类繁多,如红豆奶茶,布丁奶茶,珍珠奶茶,红豆珍珠奶茶等,并根据不同配料计算价格,并且根据每个客户的要求,每种奶茶又可以加糖或者加冰,加糖加冰
阅读全文
摘要:一、定义 为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 外观模式跟代理模式类似,也更偏向于架构模式,常见于企业应用集成中,企业应用集成包括界面集成,业务流程集成(过程集成),控制集成(应用集成,API集成),数据集成四个层面,都与外观模式有
阅读全文
摘要:一、概念界定 委托、代理、中介 二、委托(Delegate) 委托是一种引用方法的类型,相当于C++里的函数指针。 三、代理(Proxy) 见他如见我就叫代理,产品代理商,代购,租房代理 四、中介(Mediator) 中间搭桥就是中介,最终双方还是要见面,租房中介 五、定义 为其他对象提供一种代理以
阅读全文
摘要:一、定义将一个类的接口转换成客户希望的另外一个接口。适配器模式将原本由于接口不兼容而不能一起工作的那些类可以一起工作。 二、示例实现一个读卡器的例子。 三、案例分析 1.通常我们电脑只有USB接口,不能直接插入SD卡; 2.电脑和SD卡都是成型的产品,不可能改造。 3.因此,我们需要在中间实现一个转
阅读全文
摘要:原型模式 一、定义 原型模式是一种创建对象实例的设计模式,它通过复制一个现有对象来创建新的对象实例,而无需重新构建所有内容。 二、例子 1.Person.cs //实现 ICloneable 接口 public class Person : ICloneable { public string Na
阅读全文
摘要:一、定义 建造者模式是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。创建者模式隐藏了复杂对象的创建过程,它把复杂对象的创建过程加以抽象,通过子类继承或者重载的方式,动态的创建复杂的、具有复合属性的对象。 二、例子 构造一个手机,手机包括CPU,内存,屏幕等几个部分,而C
阅读全文
摘要:定义 单例模式,属于创建类型的一种常用的设计模式。它的目的就是为了创建的类在当前进程中只有一个实例。 目的 全局唯一 全局共享 优点 确保全局共享同一个实例 节约系统资源 代码 1.Program.cs internal class Program { static void Main(string
阅读全文
摘要:定义 抽象工厂是工厂方法的升级版,为相关或者相互依赖的对象提供一个统一的接口,而且无需指定他们的具体实现类。 UML类图 优缺点 优点 对产品族进行约束,封装性好 缺点 产品族扩展困难,添加一个产品需要修改抽象和具体工厂类,违背开闭原则。 代码: 1.Program.cs public class
阅读全文