設計模式二之介面卡模式

2021-07-28 12:17:02 字數 1892 閱讀 7621

介面卡模式是將乙個介面轉換成另乙個介面,將原本不能相容使用的介面變成可以使用的一種手段;

可以將原本不能用的介面,變成可用的介面;

最主要的特點就是轉換器;

主要是用來做復用,如果已經有乙個很好的功能,但因為介面不同而重寫這個功能那就太浪費了;

所以用介面卡後可以復用一些穩定的功能;

通常介面卡是乙個實現類,通過建立物件,將介面卡建立出來,並將要適配的物件傳入給介面卡!

兩步完成:

1.介面卡類實現要使用的介面

2.再介面卡中引用不相容的介面類;

優點:更好的復用性

更好的擴充套件性

缺點:如果介面卡用的過多,會讓人感覺系統很亂,不容易整體進行把握

電源介面:

public inte***ce power
電源實現:

public class powerimpl implements power 

}

慢速硬碟介面:

public inte***ce slowdisk
慢速硬碟實現:

public class slowdiskimpl implements slowdisk 

private void check()

} @override

public void writer()

@override

public void power(boolean isready)

}

客戶端類:

public class client 

}

以上的**是乙個完整的電源連線硬碟的例子;隨著技術的進步,出現了一種新的硬碟,快速硬碟,但是因為快速硬碟和慢速硬碟的型別不同,所以要使用介面卡才能使用!

下面就是介面卡實現的**:

快速硬碟介面:

public inte***ce fastdisk
快速硬碟實現:

public class fastdiskimpl implements fastdisk 

private void check()

} @override

public void writer()

@override

public void power(boolean isready)

}

介面卡類:

介面卡類的兩個特點:

介面卡類要實現要使用的介面

介面卡類要引用要轉換的介面

/**

* 介面卡原則:

* 實現和繼承power能支援的型別這裡是slowdisk

* 引用新的fastdisk

* * @author ww

* */

public class diskadapter implements slowdisk

@override

public void read()

@override

public void writer()

@override

public void power(boolean isready)

}

新的客戶端使用方法:

public class newclient 

}

致此,完成了對介面卡模式的**實現!

設計模式之介面卡模式(類介面卡模式)

介面卡模式,即定義乙個包裝類,用於包裝不相容介面的物件 包裝類 介面卡adapter 被包裝物件 適配者adaptee 被適配的類 把乙個類的介面變換成客戶端所期待的另一種介面,從而使原本介面不匹配而無法一起工作的兩個類能夠在一起工作。介面卡模式的形式分為 類的介面卡模式和物件的介面卡模式 模式原理...

設計模式 介面卡模式(二)

使用場景和原則 當系統的資料和行為都正確,但介面不符合時,我們應該考慮用介面卡。介面卡主要應用於希望復用現存的類,但是介面又與復用環境要求的不一致。就是說,兩個類所做的事相同或者相似,但是具有不同的介面,這也是一種迫於無奈,雙發都不太容易修 改的時候。一般情況下,盡可能的前期不考慮介面卡,當然了,如...

設計模式之 介面卡模式

1,介面卡模式把乙個類的介面變換成客戶端所期待的另一種介面,從而使原本因介面不匹配而無法一起工作的兩個類能夠在一起工作 2,介面卡模式有兩種 1 類的介面卡模式 介面卡類繼承源類 這樣介面卡類就繼承了源類有的方法 並實現目標介面,實現在源類中沒有而在介面中有的方法,從而實現介面卡類有目標介面的所有方...