1,适配器模式
适配器模式的作用:
类适配器与对象适配器的使用场景一致,仅仅是实现手段稍有区别,二者主要用于如下场景:
(1)想要使用一个已经存在的类,但是它却不符合现有的接口规范,导致无法直接去访问,这时创建一个适配器就能间接去访问这个类中的方法。
(2)我们有一个类,想将其设计为可重用的类(可被多处访问),我们可以创建适配器来将这个类来适配其他没有提供合适接口的类。
以上两个场景其实就是从两个角度来描述一类问题,那就是要访问的方法不在合适的接口里,一个从接口出发(被访问),一个从访问出发(主动访问)。
接口适配器使用场景:
(1)想要使用接口中的某个或某些方法,但是接口中有太多方法,我们要使用时必须实现接口并实现其中的所有方法,可以使用抽象类来实现接口,并不对方法进行实现(仅置空),然后我们再继承这个抽象类来通过重写想用的方法的方式来实现。这个抽象类就是适配器
2,装饰着模式和适配器模式的区别
装饰者是包装一个对象,某个类重新装扮一下,使得它比原来更“漂亮”,或者在功能上更强大;
适配器是进行接口的转换,对适配器模式的功能很好理解,就是把一个类的接口变换成客户端所能接受的另一种接口,从而使两个接口不匹配而无法在一起工作的两个类能够在一起工作。
两个完全不同的场景。但是同样的一点是拓展了对象的方法
3,代理模式和装饰者模式的区别
装饰器模式关注于在一个对象上动态的添加方法,然而代理模式关注于控制对象的访问,是一种静态的。
代理类(proxy class)可以对它的客户隐藏一个对象的具体信息。因此,当使用代理模式的时候,我们常常在一个代理类中创建一个对象的实例。装饰器模式 ,我们通常的做法是将原始对象作为一个参数传给装饰者的构造器。
我们可以用另外一句话来总结这些差别:使用代理模式,代理和真实对象之间的的关系通常在编译时就已经确定了,而装饰者能够在运行时递归地被构造。
4,观察者模式
观察者模式,包括观察者和被观察者,被观察者可以将观察者注册进来,注册后的观察者可以收到被观察者的变化信息。
及就是被观察发生变化的时候,会通知观察者。
5,面向对象的设计原则
倒置原则:通俗理解为程序中所有的依赖关系应该终止于抽象类或者接口