随笔分类 - 设计模式
摘要:享元模式是使用共享部件减少内存占用享元模式http://zh.wikipedia.org/wiki/享元模式享元模式(英语:Flyweight Pattern)是一种软件设计模式。它使用共享物件,用来尽可能减少内存使用量以及分享资讯给尽可能多的相似物件;它适合用于当大量物件只是重复因而导致无法令人接受的使用大量内存。通常物件中的部分状态是可以分享。常见做法是把它们放在外部数据结构,当需要使用时再将它们传递给享元。典型的享元模式的例子为文书处理器中以图形结构来表示字符。一个做法是,每个字形有其字型外观, 字模 metrics, 和其它格式资讯,但这会使每个字符就耗用上千字节。取而代之的是,每个字
阅读全文
摘要:装饰模式是通过包装类动态地往一个类中添加新的行为装饰模式http://zh.wikipedia.org/wiki/修饰模式通过使用修饰模式,可以在运行时扩充一个类的功能。原理是:增加一个修饰类包裹原来的类,包裹的方式一般是通过在将原来的对象作为修饰类的构造函数的参数。装饰类实现新的功能,但是,在不需要用到新功能的地方,它可以直接调用原来的类中的方法。修饰类必须和原来的类有相同的接口。修饰模式是类继承的另外一种选择。类继承在编译时候增加行为,而装饰模式是在运行时增加行为。FCL中的装饰模式在流处理中装饰模式非常常用,典型的就是GZipStream提供用于压缩和解压缩流的方法和属性。结构如下:其中
阅读全文
摘要:适配器模式是让一个接口兼容并适应另一个通用的接口的模式。适配器模式http://zh.wikipedia.org/wiki/适配器模式适配器模式(英语:adapter pattern)有时候也称包装样式或者包装。将一个类的接口转接成用户所期待的。一个适配使得因接口不兼容而不能在一起工作的类工作在一起,做法是将类别自己的接口包裹在一个已存在的类中。FCL中的适配器模式比较典型的是WindowsFormsHost 类允许在 WPF 页面上承载 Windows Forms控件的元素。也就是将Windows Forms控件适配为Wpf的FrameworkElement结构如下:示例代码:<Win
阅读全文
摘要:原型模式就是由对象创建当前自身的副本的模式。副本是指深拷贝的内存空间,一般用于比较复杂的对象。原型模式http://zh.wikipedia.org/wiki/原型模式原型模式是创建型模式的一种,其特点在于通过“复制”一个已经存在的实例来返回新的实例,而不是新建实例。被复制的实例就是我们所称的“原型”,这个原型是可定制的。原型模式多用于创建复杂的或者耗时的实例,因为这种情况下,复制一个已经存在的实例使程序运行更高效;或者创建值相等,只是命名不一样的同类数据。FLC中的原型模式DataTable.Clone方法 是典型的原型应用。克隆 DataTable 的结构,包括所有 DataTable 架
阅读全文
摘要:Builder建造者模式 ,它可以将复杂对象的建造过程抽象分割出来。建造者模式http://zh.wikipedia.org/wiki/生成器_(设计模式)建造模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。FLC中的建造者模式最常用的是StringBuilder 它是简化的建造者模式使用方法如下:StringBuilder stringBuilder =new StringBuilder();stringBuilder.Append("Hello");stringBuilder.App
阅读全文
摘要:工厂方法是一组方法, 他们针对不同条件返回不同的类实例,这些类一般有共同的父类。工厂方法模式来自: http://zh.wikipedia.org/wiki/工厂方法模式工厂方法模式 是一种面向对象的设计模式。通过调用不同的方法返回需要的类,而不是去实例化具体的类。 对实例创建进行了包装。 工厂方法是一组方法, 他们针对不同条件返回不同的类实例,这些类一般有共同的父类。工厂方法模式实施一种按需分配的策略, 即传入参数进行选择, 工厂方法根据参数进行选择,返回具体的实例。FLC中的工厂方法模式在FLC中比较典型的就是WebRequest.Create(Uri requestUri)方法MSDN的
阅读全文
摘要:抽象工厂模式 Abstract Factory 为一个产品家族提供了统一的创建接口。抽象工厂模式来自:http://zh.wikipedia.org/wiki/%E6%8A%BD%E8%B1%A1%E5%B7%A5%E5%8E%82抽象工厂模式(英语:Abstract Factory)是一种常见的设计模式。此模式为一个产品家族提供了统一的创建接口。当需要这个产品家族的某一系列的时候,可以从抽象工厂中选出相对系的系列来创建一个具体的工厂类别。FLC中的抽象工厂模式在FLC中比较典型的就是DbConnection .CreateDbCommand方法抽象类DbConnection表示到数据库的连接
阅读全文
摘要:单例模式Singleton:一个类仅有一个实例,自行实例化并向整个系统提供一个访问它的全局访问点。单例模式Singleton来自:http://zh.wikipedia.org/wiki/单例模式单例模式,也叫单子模式,是一种常用的软件设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息。这种方式简化了在复杂环境下的配置管理。实现单例模式的思路是:一个类
阅读全文