设计模式

2019-05-29  本文已影响0人  OOMNPE

1、设计模式分类:

2、适配器模式:

优点和应用场景:

复用性:系统需要使用现有的类,而此类的接口不符合系统需要。那么可以通过适配器模式将这些功能更好的复用。
扩展性:在实现适配器功能的时候,可以自己定义想要的方法而不改变原来的类,从而自然的扩展系统的功能。

类适配器和对象适配器区别

类适配器,由于是继承,所以无法和源类的子类一起工作,而对象适配器可以把源类和它的子类都适配到目标接口。
类适配器可以重新定义父类的部分方法,而对象适配器就比较困难。
尽量使用对象适配器,多用 合成/聚合,少用继承。

3、代理模式:

定义及应用场景:

为其他对象提供一种代理以控制对这个对象的访问,替原对象进行一些操作,比如中介;如果已有的方法在使用时需要对原方法进行改进,比如前置检测,后置记录日志,这个时候使用代理类。

java动态代理

如果代理类程序运行前并不存在,需要在程序运行时动态生成(无需收工编写代理类源码),这时候就用动态代理
如何生成:根据java的反射机制动态生成的。
Proxy.newProxyInstance(ClassLoader loader,Class<?>[] interfaces,InvocationHandler handler);
Spring的AOP就是典型的动态代理应用。

4、观察者模式:

解决的问题和应用场景

定义对象间的一种一对多的依赖关系,当一个对象的状态发生变化时,所依赖它的对象得到通知并被自动更新。此模式通常用来处理事件处理系统。
通知代替轮询。解耦观察者和被观察者,避免直接调用。

上一篇 下一篇

猜你喜欢

热点阅读