适配器模式的定义:
将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。
对象适配器模式的结构图:
image.png
类适配器模式结构图:
image.png
适配器模式主要优缺点:
优点:
由于适配器类的是适配者的子集,因此可以在适配器类中置换一些适配者的方法,是的适配器的灵活性更强。
1.一个对象适配器可以把多个不同的适配者适配到同一个目标。
2.可以适配一个适配者的子类,由于适配器和适配者之间是关联关系,根据里氏代换原则,适配者的子类也可通过该适配器进行适配。
缺点:
与适配器模式相比,要在适配器中置换是陪着类的某些方法比较麻烦。如果一定要置换掉是适配者类的一个或者多个方法,可以先做一个适配者类的子类,在子类中奖适配者类的方法置换掉,然后在把适配者类的子集当做真正的适配者进行适配,实现过程比较复杂。
适配器模式适用场景:
1.系统需要使用一些现有的类,而这些类的接口不符合系统的需要,甚至没有这些类的源代码。
2.想创建一个可以重复使用的类,用于与一些彼此之间没有太大关联的类,包括一些可能在将来引进的类一起工作。
双向适配器模式:
如果在适配器中同时包含对目标类和适配者类的引用。适配者可以通过它调用目标类中的方法,目标类也可以通过它调用适配者类中的方法,那么该适配器是一个双向适配器。
缺省适配器:
当不需要事先一个接口所提供的所有方法时,可先设计一个抽象类的实现该接口,并为接口中每个方法提供一个默认实现,那么该抽象类的子类可以选择性地覆盖父类的某些方法来实现需求,他适用于不想使用一个接口中的所有方法的情况,又称为单接口适配器模式。
网友评论