介面卡(adapter),將乙個類的介面轉換為客戶所希望的另外的介面。adapter模式使得原本由於介面不相容而不能一起工作的那些類可以一起工作。
target:客戶所期待的介面。目標可以是具體的或者抽象的類,也可以是介面
adaptee:需要進行適配的類
adapter:通過在內部包含乙個adaptee物件,把源介面轉換成目標介面。
本demo主要是列舉語言不通需要翻譯的例項。
假設要命剛開始去nba打籃球且不會英文,那麼他們球員和教練之間就會存在交流障礙,通過增加翻譯者(adapter)來取消這個障礙。
首先是定義打籃球的基類:
abstract public class baseplayer定義各個適合球員的位置: public baseplayer()
/**
* 球員進攻
* */
public abstract void attack();
/**
* 球員防守
* */
public abstract void defence();
}
public class forwards extends baseplayer @override
public void attack()
@override
public void defence()
}
public class center extends baseplayer @override
public void attack()
@override
public void defence()
}
public class guards extends baseplayer因為姚明剛開始去nba打籃球,雖然是乙個球員,但是聽不懂英文,所以需要自定義乙個類: @override
public void attack()
@override
public void defence()
}
public class foreigncenter那麼接下來就是翻譯者的定義,其裡面主要是維護了乙個外籍球員的物件,來告訴他們進攻或者防守 public void setname(string name)
/**
* 只聽得懂的中文進攻
* */
public void foreignattack()
/**
* 只聽得懂的中文防守
* */
public void foreigndefence()
}
public class adapter extends baseplayer客戶端呼叫: @override
public void attack()
@override
public void defence()
}
public class client當系統的行為和資料都是正確的時候,但是介面不符時,我們應該考慮介面卡,目的是使控制範圍之外的乙個原有物件與某個介面匹配。介面卡主要是應用希望復用一些類,但是這些類的介面與系統的介面不符的情況。}
在以後的工作中,設定的時候盡量維護相同的介面,實際上事前控制比事後彌補要好的多。
介面卡模式 Adapter
一句話 什麼是adapter adapter 就是乙個轉換器,比如乙個電源插頭可以讓乙個兩插頭的電器使用牆壁上的三插頭電源。這次的介紹將不寫 雖然設計模式是為了 而生,但我認為這是一種看世界的方法,不僅僅是一種 的設計方式,所以這次的介面卡模式因為比較簡單和容易理解就不再寫 解釋,但介面卡的思想能用...
Adapter 介面卡模式
1.概念 介面卡模式 adapter pattern gof95 把乙個類的介面變換成客戶端所期待的另一種介面,從而使原本因介面不匹配而無法在一起工作的兩個類能夠在一起工作。2.兩種形式 a.類的介面卡模式 b.物件的介面卡模式 3.模擬問題 現在假設我們的程式已經設計了介面request介面,但是...
Adapter介面卡模式
adapter介面卡模式是一種結構型模式,主要應對 由於應用環境的變化,常常需要將 一些現存的物件 放在新的環境中應用,但是,新環境要求的介面是現存物件所不滿足的。設計模式 中說道 將乙個類的介面轉換成客戶希望的另乙個介面。adapter模式使得原本由於介面不相容而不能一起工作的類可以一起工作。在實...