ASP.NET设计模式笔记1

设计模式分类

分为3组,创建型,结构型,行为型.

1.创建型

创建型模式处理对象构造和引用。它们将对象实例的实例化责任从客户代码中抽象出来,从而让代码保持松散耦合,将创建复杂对象的责任放在一个地方,这遵循了单一责任原则和分离原则.

抽象工厂模式:提供一个接口来创建一组相关的对象。

工厂方法模式:支持使用一个类来委托创建有效对象的责任。

生成器模式:将对象本身的构造分离出来,从而能够构造对象的不同版本.

原型模式:能够从一个原型实例来复制或克隆类,而不是创建新实例.

单例模式:支持一个类只实例化一次,并只有一个可用来访问它的全局访问点.

2.结构型

结构型模式处理对象的组合与关系,以满足大型系统的需要.

适配器模式:使不兼容接口的类能够一起使用,

桥接模式:将抽象与其实现分离,允许实现和抽象彼此独立地改变。

组合模式:可以像对待对象的单个实例那样来对待一组表示层次结构的对象。

装饰模式:能够动态包装一个类并扩展其行为。

门面模式:提供一个简单的接口并控制对一组复杂接口和子系统的访问。

享元模式:提供一种在许多小类之间高效共享数据的方式.

代理模式;为一个实例化成本很高的更复杂的类提供一个占位符.

3.行为型

行为型模式处理对象之间在责任和算法方面的通信.这个分组中的模式将复杂行为封装起来并将其从系统控制流中抽象处理,这样就使复杂系统更容易理解和维护.

责任链模式:允许将命令动态链接起来处理请求。

命令模式:将一个方法封装成一个对象,并将该命令的执行与它的调用者分离.

解释器模式:指定如何执行某种语言中的语句。

迭代器模式:提供以形式化的方式来导航集合的方法。

中介者模式:定义一个对象,可以让其他两个对象进行通信而不必让它们知道彼此。

备忘录模式:允许将对象恢复到以前的状态.

观察者模式:定义一个或多个类在另一个类发生变化时接到报警。

状态模式:允许对象通过委托给独立的,可改变的状态对象来改变自己的行为.

策略模式:能够将算法封装一个类中并在运行时转换,以改变对象的行为。

模板方法模式:定义算法流程控制,但允许子类重写或实现执行步骤。

 

 

单例模式 用途:保证对象单一
简单工厂模式 用途:客户端只需要知道传入工厂类的参数,不需要关心如何创建对象
工厂模式 对于简单工厂模式 如果有新产品就需要修改工厂类源代码 用途:客户端不知道其所需要的对象的类,只需要知道所对应的工厂。
抽象工厂模式 由于工厂方法模式的每个工厂只生产一类产品,可能会导致系统中存在大量的工厂类,从而增加系统开销。工厂方法模式针对的是一个产品等级结构,而抽象工厂模式需要面对多个产品等级结构,一个工厂等级结构可以负责多个不同产品等级中的产品对象的创建。
原型模式 用途:通过复制一个已有的实例可以提高新实例的创建效率


建造者模式 如果将抽象工厂模式看成一个汽车配件生产厂,生成不同类型的汽车配件,那么建造者模式则是一个汽车组装厂,通过对配件进行组成返回一辆完整的汽车

适配器模式:将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作 用途:感觉像是连接了一个现有的接口同时增加了一个适配类 客户端调用目标接口 适配器类完成了扩展 适配器类中调用了适配类者

桥接模式: 将抽象部分与其实现部分分离,使得他们都可以独立地变化。一个类存在两个或者多个变化的维度,并且都需要独立进行扩展。不希望通过继承的方式导致类的个数急剧增加。一个系统需要在抽象类和具体类之间增加更多的灵活性,避免在两个层次之间建立静态继承关系,通过桥接可以使它们在抽象层建立一个关联关系。

组合模式:主要是解决树形结构的问题。在具有整体和部分的层次结构中,希望通过一种方式忽略整体与部分的差异,客户端可以一致地对待他们。

装饰器模式:动态地给一个对象增加一些额外的职责,改变一个对象本身功能的基础上给对象增加额外的新行为

外观模式:想要为访问一系列复杂的子系统提供一个统一的简单入口

享元模式:运用共享技术有效地支持大量细粒度对象的复用。系统只使用少量的对象,而这些对象都很相似,状态变化很小,可以实现对象的多次复用

代理模式: 给某一个对象提供一个代理,并由代理对象控制对原对象的引用,协调了调用者和被调用者,一定程度上降低了系统的耦合度 

责任链模式:避免将请求发送者与接受者耦合在一起,让多个对象都有机会接受请求,将这些对象连成一条链,并且沿着这条链传递请求,直到有对象处理它为止。主要是审批逻辑

观察者模式:定义对象之间的一种一对多依赖关系,使得当每一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新 主要是订阅发布

策略模式:定义一系列算法类,将每一个算法封装起来,并让它们可以相互替换。策略模式让算法独立于使用它的客户而变化.主要是避免了多重的if-else条件选择语句

 

posted @ 2021-07-05 15:20  最爱吃汤圆27  阅读(46)  评论(0)    收藏  举报