1.代理模式和装饰模式
在项目开发中,由A方先提供API接口,B方调用
此时A方将自己的实现类实现API接口
B方同时也编写实现类实现API接口,但不需要真的实现接口中的逻辑,只需调用父接口中的方法即可
图:
这时暴露出来的只有接口API和代理类B,B提供了其他对象调用A的代理,B里面具有对实现类A的方法的控制权,可以控制他什么时候执行或者是不执行
当B只是为了给A方法的实现增加一些功能,并没有权利决定A的方法是否执行时,此时设计模式变为装饰模式
代理模式和装饰模式的区别在于,代理模式:代理类B中的实现方法可以控制有分支不调用B的方法,装饰模式:装饰类B中必须会调用A的方法,但可以在A方法的基础上增加功能