c#所有设计模式及源代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C#设计模式总结
各位亲们,在网上很难找到所有设计模式的说明及源代码,尤其C#更是比较少,本人最近花了点时间罗列了二十多种设计模式,希望能对写程序朋友尤其需要软考的朋友有所帮助,如果有需要源代码和类图的朋友,请到温尔保免费索取,以便我们进行探讨和您对此文档的指正,当然别忘了关顾我的小店哦,谢谢!由于能力有限,对有些模式理解不正确,敬请谅解和指正,愿我们一同进步,一同学习,本人的QQ是1070837561。
一、简单工厂模式
1.概念
从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static
Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对
象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,
可以理解为是不同工厂模式的一个特殊实现。
2.类图
3.使用场景
a)工厂类负责创建的对象比较少;
b)客户只知道传入工厂类的参数,对于如何创建对象(逻辑)不关心;
c)由于简单工厂很容易违反高内聚责任分配原则,因此一般只在很简单的情况下应用。
4.代码
上温尔保免费索取所有模式的源代码。
二、工厂方法模式
1、概念
工厂方法(Factory Method)模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。
2、类图
3、
使用场景
a) 调用者清楚地知道应该使用哪个具体工厂服务,实例化该具体工厂,生产出具体的产品来;
b)
只是需要一种产品,而不想知道也不需要知道究竟是哪个工厂为生产的,即最终选用哪个具体工厂的决定权在生产者一方,它们根据当前系统的情况来实例化一个具体的工厂返回给使用者,而这个决策过程这对于使用者来说是透明的。
4、 代码
上温尔保免费索取所有模式的源代码。
三、 单例模式
1、 概念
单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。 2、 类图
3、 使用场景
a) 资源共享的情况下,避免由于资源操作时导致的性能或损耗等; b) 控制资源的情况下,方便资源之间的互相通信。
4、 代码
上温尔保免费索取所有模式的源代码。
四、 构建模式
1、 概念
构建模式将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示,构建模式是一步步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建
它们,用户不知道内部的具体构建细节。
2、类图
3、使用场景
a)当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时;
b)当构造过程必须允许被构造的对象有不同表示时。
4、代码
上温尔保免费索取所有模式的源代码。
五、原型模式
1、概念
原型模式指定创建对象的种类,并且通过复制这些原型创建新的对象。原型模式允许一个对象再
创建另一个可定制的对象,根本无须知道任何创建的细节。工作原理是:通过将一个原型对象传
给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象复制自己来实施创建过程。
2、类图
3、使用场景
a)类初始化需要消化非常多的资源,这个资源包括数据、硬件资源等;
b)通过new产生一个对象需要非常繁琐的数据准备或访问权限;
c)原型模式很少单独出现,一般是和工厂方法模式一起出现,通过clone的方法创建一个
对象,然后由工厂方法提供给调用者。
4、代码
上温尔保免费索取所有模式的源代码。
六、适配器模式
1、概念
适配器模式将一个接口转换成为客户想要的另一个接口,适配器模式使接口不兼容的那些类可以一起工作。
2、类图
3、使用场景
a)系统需要使用现有的类,而现有类不符合当前系统的要求;
b)系统要建立一个可以重复使用的类,用来与彼此没有太大关联的类或者在将来要引用的
类一起工作。
4、代码
上温尔保免费索取所有模式的源代码。
七、合成模式
1、概念
合成模式组合多个对象形成树形结构以表示整体-部分的结构层次。合成模式对单个对象和合成对象的使用具有一致性。合成模式提供一个树结构中所有对象的统一接口, 规范树中单独对象和合成对象的构建过程, 合成模式更像一个数据结构。
2、类图
3、使用场景
遇到对象组合的情况,同时也符合树结构。
4、代码
上温尔保免费索取所有模式的源代码。
八、装饰模式
1、概念
装饰模式是在不必改变原类文件和使用继承的情况下,动态的扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。就增加对象功能来说,装饰模式比生成子类实现更为灵活。
2、类图
3、使用场景
a)想透明并且动态地给对象增加新的职责的时候;
b)给对象增加的职责,在未来存在增加或减少可能;
c)用继承扩展功能不太现实的情况下,应该考虑此模式。
4、代码
上温尔保免费索取所有模式的源代码。
九、代理模式
1、概念
代理模式为其他对象提供一个代理或地方以控制对这个对象的访问。当客户向代理对象第一次提