在編程中咱們常常會遇到驢頭不對馬嘴的狀況,好比之前是繼承A的接口的對象,如今外部調用的時候須要該對象已B接口的形式來調用
,這個時候咱們能夠讓對象同時集成A和B接口來達到目的,不過,這樣又違反了開閉原則,這個時候咱們能夠使用適配器模式來達到目的。java
適配器模式是一種結構模式,能夠幫助咱們把對象以不一樣的接口方式來調用。主要由3個角色組成:編程
Adaptee 原始對象設計模式
首先,咱們讓Adapter繼承實現Target接口,其次在Adapter中構造Adaptee對象,而後在Target方法中調用Adaptee中相應的方法。過程很是簡單。ide
下面是適配器模式的一個簡單實現:this
public interface Target { void request(); 大專欄 java design pattern - adapter pattern}
public class Adaptee { public void doSomething() { System.out.println("Adaptee doSomething!!!"); } }
public class Adapter implements Target { private Adaptee adaptee; public Adapter(Adaptee adaptee) { this.adaptee = adaptee; } @Override public void request() { this.adaptee.doSomething(); } }
public class Test { public static void main(String[] args) { Target target = new Adapter(new Adaptee()); target.request(); } }
適配器是一種很是簡單的設計模式,通常是用來在後期調用時發現對象的接口不匹配的時候使用,至關於一種「補充」的手段 在雙方都不太容易修改的時候能夠使用適配器模式。