设计模式--适配器模式(Adapter Pattern)

定义:

适配器模式把一个类的接口变换成客户端所期待的另外一种接口,从而使本来因接口不匹配而没法在一块儿工做的两个类可以在一块儿工做。.net

使用场景:

  • 想要创建一个能够重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在未来引进的类一块儿工做。
  • 系统须要使用现有的类,而这些类的接口不符合系统的须要。

UML类图:

类适配: 3d

对象适配:

优势:

  • 将目标类和适配者类解耦,经过引入一个适配器类来重用现有的适配者类,而无须修改原有代码。
  • 增长了类的透明性和复用性,将具体的实现封装在适配者类中,对于客户端类来讲是透明的,并且提升了适配者的复用性。
  • 灵活性和扩展性都很是好,经过使用配置文件,能够很方便地更换适配器,也能够在不修改原有代码的基础上增长新的适配器类,彻底符合“开闭原则”。

类适配器模式还具备以下优势:
~~~~~~因为适配器类是适配者类的子类,所以能够在适配器类中置换一些适配者的方法,使得适配器的灵活性更强。
对象适配器模式还具备以下优势:
~~~~~~一个对象适配器能够把多个不一样的适配者适配到同一个目标,也就是说,同一个适配器能够把适配者类和它的子类都适配到目标接口。
cdn

缺点:

类适配器模式的缺点以下:
~~~~~对于Java、C#等不支持多重继承的语言,一次最多只能适配一个适配者类,并且目标抽象类只能为抽象类,不能为具体类,其使用有必定的局限性,不能将一个适配者类和它的子类都适配到目标接口。
对象适配器模式的缺点以下:
~~~~~与类适配器模式相比,要想置换适配者类的方法就不容易。若是必定要置换掉适配者类的一个或多个方法,就只好先作一个适配者类的子类,将适配者类的方法置换掉,而后再把适配者类的子类当作真正的适配者进行适配,实现过程较为复杂。对象

相关文章
相关标签/搜索