随笔分类 - CSharp 设计模式
CSharp设计模式读书笔记(24):访问者模式(学习难度:★★★★☆,使用频率:★☆☆☆☆)
摘要:模式角色与结构:示例代码:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace CSharp.DesignPattern.VisitorPattern{ class...
阅读全文
CSharp设计模式读书笔记(23):模板方法模式(学习难度:★★☆☆☆,使用频率:★★★☆☆)
摘要:模板方法模式:定义一个操作中算法的框架,而将一些步骤延迟到子类中。模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。模式角色与结构:实现代码:using System;using System.Collections.Generic;using System.Linq;us...
阅读全文
CSharp设计模式读书笔记(22):策略模式(学习难度:★☆☆☆☆,使用频率:★★★★☆)
摘要:策略模式(Strategy Pattern):定义一系列算法类,将每一个算法封装起来,并让它们可以相互替换,策略模式让算法独立于使用它的客户而变化,也称为政策模式(Policy)。模式角色与结构:示例代码:using System;using System.Collections.Generic;u...
阅读全文
CSharp设计模式读书笔记(21):状态模式(学习难度:★★★☆☆,使用频率:★★★☆☆)
摘要:模式角色与结构:示例代码:(本示例在具体状态类中实现状态切换,也可以在环境类中实现状态切换。状态模式一定程度上违背开闭原则)using System;using System.Collections.Generic;using System.Linq;using System.Text;namesp...
阅读全文
CSharp设计模式读书笔记(20):观察者模式(学习难度:★★★☆☆,使用频率:★★★★★)
摘要:观察者模式(Observer Pattern):定义对象之间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新。观察者模式的别名包括发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/List...
阅读全文
CSharp设计模式读书笔记(19):备忘录模式(学习难度:★★☆☆☆,使用频率:★★☆☆☆)
摘要:备忘录模式(Memento Pattern):在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。它是一种对象行为型模式,其别名为Token。模式角色与结构:示例代码:
阅读全文
CSharp设计模式读书笔记(18):中介者模式(学习难度:★★★☆☆,使用频率:★★☆☆☆)
摘要:中介者模式(Mediator Pattern):用一个中介对象(中介者)来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互,中介者模式又称为调停者模式。模式角色与结构:示例代码:using System;using System.Colle...
阅读全文
CSharp设计模式读书笔记(17):迭代器模式(学习难度:★★★☆☆,使用频率:★★★★★)
摘要:迭代器模式(Iterator Pattern):提供一种方法来访问聚合对象,而不用暴露这个对象的内部表示,其别名为游标(Cursor)。模式角色与结构:实现代码:using System;using System.Collections.Generic;using System.Linq;using...
阅读全文
CSharp设计模式读书笔记(16):解释器模式(学习难度:★★★★★,使用频率:★☆☆☆☆)
摘要:模式角色与结构:
阅读全文
CSharp设计模式读书笔记(15):命令模式(学习难度:★★★☆☆,使用频率:★★★★☆)
摘要:命令模式(Command Pattern):将一个请求封装为一个对象,从而让我们可用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。命令模式是一种对象行为型模式,其别名为动作(Action)模式或事务(Transaction)模式。模式角色与结构:(可以有多个Concr...
阅读全文
CSharp设计模式读书笔记(14):职责链模式(学习难度:★★★☆☆,使用频率:★★☆☆☆)
摘要:职责链模式(Chain of Responsibility Pattern):避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。模式角色与结构:示例代码:using System;using System.Collec...
阅读全文
CSharp设计模式读书笔记(13):代理模式(学习难度:★★★☆☆,使用频率:★★★★☆)
摘要:代理模式:给某一个对象提供一个代理或占位符,并由代理对象来控制对原对象的访问。模式角色与结构:示例代码:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace CSharp...
阅读全文
CSharp设计模式读书笔记(12):享元模式(学习难度:★★★★☆,使用频率:★☆☆☆☆)
摘要:模式角色与结构:
阅读全文
CSharp设计模式读书笔记(11):外观模式(学习难度:★☆☆☆☆,使用频率:★★★★★)
摘要:定义:外观模式:为子系统中的一组接口提供一个统一的入口。外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。模式角色与结构:示例代码:using System;using System.Collections.Generic;using System.Linq;using System....
阅读全文
CSharp设计模式读书笔记(10):装饰模式(学习难度:★★★☆☆,使用频率:★★★☆☆)
摘要:装饰模式(Decorator Pattern):动态地给一个对象增加一些额外的职责,就增加对象功能来说,装饰模式比生成子类实现更为灵活。模式角色与结构:示例代码:using System;using System.Collections.Generic;using System.Linq;using...
阅读全文
CSharp设计模式读书笔记(9):组合模式(学习难度:★★★☆☆,使用频率:★★★★☆)
摘要:组合模式(Composite Pattern):组合多个对象形成树形结构以表示具有“整体—部分”关系的层次结构。组合模式对单个对象(即叶子对象)和组合对象(即容器对象)的使用具有一致性,组合模式又可以称为“整体—部分”(Part-Whole)模式。角色模式与结构:组合模式的关键是定义了一个抽象构件类...
阅读全文
CSharp设计模式读书笔记(8):桥接模式(学习难度:★★★☆☆,使用频率:★★★☆☆)
摘要:桥接模式(Bridge Pattern):将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interface)模式。模式角色与结构:示例代码:using System;using System.Collection...
阅读全文
CSharp设计模式读书笔记(7):适配器模式(学习难度:★★☆☆☆,使用频率:★★★★☆)
摘要:适配器模式(Adapter Pattern):将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。模式角色与结构:对象适配器:示例代码:using System;using System...
阅读全文
CSharp设计模式读书笔记(6):建造者模式(学习难度:★★★★☆,使用频率:★★☆☆☆)
摘要:建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。模式角色与模式:建造者模式可以将一个产品的内部表象与产品的生产过程分割开来,从而可以是一个建造过程生成具有不同的内部表象的产品对象。示例代码:using System;using ...
阅读全文
CSharp设计模式读书笔记(5):原型模式(学习难度:★★★☆☆,使用频率:★★★☆☆)
摘要:原型模式(Prototype Pattern):使用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。模式角色与结构:示例代码:using System;using System.Collections.Generic;using System.Linq;using System.Tex...
阅读全文
浙公网安备 33010602011771号