設計模式——適配器模式(adpter模式)

適配器模式:按照字面理解能夠理解爲要適應要配合才能一塊兒很好的工做。this

專業定義:把一個類的API轉換成用戶指望的另外一種API,讓本來不能在一塊兒工做的類可以在一塊兒工做。若是理解起來不是很明瞭,咱們舉個簡單的例子,以下:電腦是一個類,電源插座是一個類,有時候電腦的電源插頭是3孔的,而剛好如今咱們可用的電源插座是兩孔的,如今插不進去,沒法正常使用電腦,該怎麼辦?那麼此時,咱們就想到了本節所提到的適配器模式。若是咱們有一個電源適配器,其做用就是將電腦的3孔電源轉換成2孔的電源,那麼電腦不就能夠正常的工做了嗎?對象

適配器模式有類適配器模式和對象適配器模式繼承

一 類適配器模式代碼示例(核心思想:經過繼承被適配者來創建適配器)接口

//用戶指望可以使電腦插2孔的方法,咱們用一個接口來定義class

public interface Mhope方法

{im

public void method2(){};d3

}co

//電腦類工作

public  class   Computer

{

//插3孔電源的方法

public void  method3(){};

}

//適配器,經過繼承來創建適配器這樣就保留了電腦插3孔電源的方法,經過實現接口來知足用戶指望的方法

public class Adapter extends Computer implements Mhope

{

//public void  method3(){}; 原來有的插3孔的方法

public void method2(){}; //實現了用戶指望的插2孔的方法

}

有了適配器之後,那你想一想看,咱們把電腦插在適配器上,再將適配器插在咱們的兩孔電源插座上,這樣就將電腦的插3孔電源的方法轉換用戶指望的插2孔電源的方法,這就是適配器的類適配器模式,既然是經過繼承構建適配器的,那麼優勢就是能夠在適配器中對父類插3孔的方法進行修改;

二對象適配器模式代碼示例(核心思想:經過構建被適配者的對象來使用被適配者的方法,在適配器中定義用戶指望的方法)

//電腦類

public  class   Computer

{

//插3孔電源的方法

public void  method3(){};

}

//適配器,

public class Adapter

{

private  Computer computer;

//經過構造方法,可使用插3孔的方法

public Adapter(Computer computer)

{

this.computer=computer;

}

//使用插3孔的方法

public  void  usemethod3()

{

computer.method3();

}

//用戶指望用到的插2孔的方法

public void hopemethod2(){

//詳細代碼

......................

}; }

}

不一樣於類的適配器模式,對象適配器模式是經過構建被適配者的對象來實現適應工做的,那麼它的優勢就能夠是將不一樣的被適配者適配到同一個目標上。3,4,5,6孔的電器插頭插到咱們的具備3,4,5,6孔的電源適配器上,而後將適配器插到2孔電源上,不就均可以正常工做了嗎????  (此處舉例,話說有4,5,6孔的插座嗎?O(∩_∩)O哈哈~)

相關文章
相關標籤/搜索