设计模式笔记---总结学习

1  中介者模式也叫调停者(Mediator)模式

 中介者模式,定义了一个中介对象来封装一系列对象之间的交互关系。中介者使各个对象之间不需要显式地相互引用,从而使耦合性降低,而且可以独立地改变它们之间的交互行为。

2 外观模式也叫门面(Facade)模式 

外观模式提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。

3  组合模式也叫合成模式

组合模式允许你将对象组合成树形结构来表现”部分-整体“的层次结构,使得客户以一致的方式处理单个对象以及对象的组合。

GOF23种设计模式、

创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。

结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。

行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

不变模式:

一个对象的状态在对象被创建之后就不再变化,这就是所谓的不变模式。

代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。

委托模式是软件设计模式中的一项基本技巧。在委托模式中,有两个对象参与处理同一个请求,接受请求的对象将请求委托给另一个对象来处理。

 代理模式的代理类和实现类是上下级关系,而委托模式的委托类和被委托类是平级关系。

代码编写有个这样的原则:能不用继承就不用继承,能使用委托实现的就不使用继承。两个类有明显示的层级关系时使用继承,没有明显的层级关系,仅仅是为了在一个类中使用另一个类的方法时应该使用委托。

根据《重构》一书称:现在有滥用继承的趋势,JDK 中 Stack 就是一个滥用继承的典型!

java.util.Stack 继承自 java.util.Vector,其实 Stack 与 Vector 在用途上完全是风马牛不相及的两个容器。

代理模式的实现:

代理模式下,目标对象从头到尾不会有任何的改变;

代理方法中不会有任何业务相关的逻辑存在,更不会改变真正的逻辑实现。

与此相反,委托模式不仅可以自由切换被委托者,甚至可以自己实现一段逻辑(例如类加载器);

参考文献:

https://www.cnblogs.com/java-my-life/archive/2012/05/08/2487757.html

https://blog.csdn.net/hhcccchh/article/details/22677327

https://blog.csdn.net/wenyuan65/article/details/82534902

猜你喜欢

转载自blog.csdn.net/qq_25744257/article/details/85228432