### 適配器模式
將一個類的接口轉換成用戶希望的另外一個接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。(摘抄)
其實適配器模式很簡單,就是當你發現你寫好了抽象接口和實現類,但是實現的類方法和抽象接口的方法不兼容,這個時候加入一個類實現抽象接口,然后在這個類中實例化實現類,在接口需要調用某種方法時,直接調用實現類里面的方法就可以了,這樣解除了不兼容的問題。但是缺點也很明顯,如果實現類中的代碼不是特別復雜而且這個實現類又和別的沒有太大關系時,最好是重新寫一個接口的實現類會比較方便和清晰。同時,這也體現了適配器模式的優點,可以增加類的復用,同時在后期維護過程中只需要增加適配器類就可以了。這個是利弊共存的,至于如何取舍這就需要具體情況具體分析了。
~~~
//定義抽象接口
public interface DBTool
{
void query();
void update();
void delete();
void add();
}
//程序里已經有了一個寫好的數據庫處理類
public class ConcreteDBTool
{
public void q()
{}
public void u()
{}
public void d()
{}
public void a()
{}
}
//已經存在的處理類和接口不兼容,這時就需要一個適配器類
public class DBToolAdapter implements DBTool
{
private ConcreteDBTool concreteDBTool = new ConcreteDBTool();
@Override
public void query() {
// TODO Auto-generated method stub
concreteDBTool.q();
}
@Override
public void update() {
// TODO Auto-generated method stub
concreteDBTool.u();
}
@Override
public void delete() {
// TODO Auto-generated method stub
concreteDBTool.d();
}
@Override
public void add() {
// TODO Auto-generated method stub
concreteDBTool.a();
}
}
//如果客戶端現在需要使用已經寫好的數據庫實現類,那么使用適配器類就可以了
public class Client
{
public static void main()
{
DBTool dbTool = new DBToolAdapter();
//使用的是已經提前寫好的實現類里面的方法
dbTool.query();
dbTool.update();
dbTool.delete();
dbTool.add();
}
}
~~~
平時編程的時候有很多類的名字里面都有adapter,估計這些adapter類,就是使用的適配器模式
。(純屬個人猜測)
- 前言
- (1)代碼無錯就是優?——簡單工廠模式
- (2)商場促銷——策略模式
- (3)&(4)&(5) 設計模式原則
- (6)穿什么有這么重要?——裝飾模式
- (7)為別人做嫁衣——代理模式
- (8)雷鋒依然在人間——工廠方法模式
- (9)簡歷復印——原型模式
- (10)考題抄錯會做也白搭——模板方法模式
- (11)迪米特法則
- (12)牛市股票還會虧錢?—— 外觀模式
- (13)好菜每回味不同——建造者模式
- (14)老板回來,我不知道——觀察者模式
- java實現事件委托
- (15)就不能不還DB嗎?—— 抽象工廠模式
- (16)無盡加班何時休息——狀態模式
- (17)在NBA我需要翻譯——適配器模式
- (18)如果再回到從前——備忘錄模式
- (19)分公司=部門——組合設計模式
- (20)想走?可以!先買票——迭代器模式
- (21)有些類也需計劃生育——單例模式
- (22)手機軟件何時統一——橋接模式
- (23)烤羊肉串引來的思考——命令模式
- (24)加薪非要老總批?——職責鏈模式
- (25)世界需要和平——中介者模式
- (26)項目多也別傻做——享元模式
- (28)男人和女人——訪問者模式