1 / 15
文档名称:

c#设计模式(无代码).docx

格式:docx   大小:701KB   页数:15页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

c#设计模式(无代码).docx

上传人:xiaobaizhua 2022/6/28 文件大小:701 KB

下载得到文件列表

c#设计模式(无代码).docx

文档介绍

文档介绍:设计模式分为三种类型
创建型模式:简单工厂、工厂方法模式、抽象工厂模式、建造者模式、原型模式、 单例模式
结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、 代理模式。
行为型模式:模版方法模式、命令模式、迭代builder内每个方法分别创建产品零部件,而工厂方法是每 个factory生产一个产品。如果把builder的零部件当做一个完整产品呢?是不是就像 builder 又再一次封装了 factory~
模式结构图
、Product
代码示例
田 View Code
五、原型模式
模式说明
所谓原型模式就是用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。 说到复制,就会有深/浅两种复制,这是面向对象的值类型和引用类型的差异,具体不作说 明
模式结构图
结构型模式
七、适配器模式
模式说明
适配器模式就是将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容 的类可以合作无间。
在适配器模式中,我们可以定义一个包装类,包装不兼容接口的对象,这个包装类就是适配 器,它所包装的对象就是适配者。
适配器提供给客户需要的接口,适配器的实现就是将客户的请求转换成对适配者的相应的接 口的引用。也就是说,当客户调用适配器的方法时,适配器方法内部将调用 适配者的方法, 客户并不是直接访问适配者的,而是通过调用适配器方法访问适配者。因为适配器可以使互 不兼容的类能够''合作愉快〃。
模式结构图
class AdapterPattern
适过内部赳議一个Ad^pt克对叙 把負接 匚转按沖目标接匚.
代码示例
注:此处ILogger接口使用了【工厂方法模式】定义的接口
田 View Code
八、桥接模式
模式说明
桥接模式即将抽象部分与它的实现部分分离开来,使他们都可以独立变化。
桥接模式将继承关系转化成关联关系,它降低了类与类之间的耦合度,减少了系统中类的数 量,也减少了代码量。
个人感觉,代理模式、适配器模式和桥接模式相类似,代理模式是一个代理对外表示一个特 定的类,适配器模式相当于一个适配器代理多个类,而桥接模式则更加适用于多个对多个的 时候
模式结构图
十、组合模式
模式说明
组合模式组合多个对象形成树形结构以表示''整体-部分〃的结构层次。
组合模式对单个对象(叶子对象)和组合对象(组合对象)具有一致性,它将对象组织到树结构 中,可以用来描述整体与部分的关系。同时它也模糊了简单元素(叶子对象)和复杂元素(容 器对象)的概念,使得客户能够像处理简单元素一样来处理复杂元素,从而使客户程序能够 与复杂元素的内部结构解耦。
模式结构图
foisach child in cfiildren ralionO
代码示例
田 View Code
十^一、外观模式
模式说明
所谓外观模式就是提供一个统一的接口,用来访问子系统中的一群接口。
模式结构图
代码示例
田 View Code
十二、享元模式
模式说明
所谓享元模式就是运行共享技术有效地支持大量细粒度对象的复用。系统使用少量对象而 且这些都比较相似,状态变化小,可以实现对象的多次复用。
FlyweightFactory内定义的实体是不变的(共享的),传入参数是状态变化。
缓存形式,传入参数已经被缓存则直接返回,否则创建参数对应实体,放入缓存并返回该新 实体
模式结构图
行为型模式
十四、迭代器模式
代码示例
田 View Code
十五、解释器模式
模式说明
所谓解释器(Interpreter)就是将一系列指令转化成代码,能够执行的代码。Interpreter 本来就有翻译的意思。GoF给它的定义是:给定一个语言,定义它的文法的一种表示,并 定义一个解释器,这个解释器使用该表示来解释语言中的句子。
模式结构图
代码示例
田 View Code
十六、命令模式
模式说明
将请求封装成对象,从而使可用不同的请求对客户进行参数化;对请求排队或记录请求日志, 以及支持可撤消的操作。
模式结构图
o
4
rg亡eiv白r
w
A
n&ceive< AcdonO
代码示例
田 View Code
十八、备忘录模式
模式说明
代码示例
田 View Code
十七、中介者模式
模式说明
所谓中介者模式就是用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式
地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
模式结构图
< interface >> Mediator
-KhangeQ
Concret