1.6、適配器模式

Java與模式:適配器模式
 
目的:
將一個類的接口轉換成客戶希望的另外一個接口。A d a p t e r 模式使得原本由於接口不兼容而不能一起工作的那些類可以一起工作。
 
意圖:
你想使用一個已經存在的類,而它的接口不符合你的需求。 你想創建一個可以複用的類,該類可以與其他不相關的類或不可預見的類(即那些接口可能不一定兼容的類)協同工作。 (僅適用於對象A d a p t e r )你想使用一些已經存在的子類,但是不可能對每一個都進行子類化以匹配它們的接口。對象適配器可以適配它的父類接口。
 
(目的和意圖是不變的,摘自《設計模式迷你手冊》電子版)
 
下面是一個Java版的示例
 
一、原理圖:
 
二、示例代碼
/**
* Created by IntelliJ IDEA.
* User: leizhimin
* Date: 2008-8-2 14:43:46
* 源角色
*/

public class Adaptee {
    public int get220v(){
       return 220;
    }
}
 
/**
* Created by IntelliJ IDEA.
* User: leizhimin
* Date: 2008-8-2 14:43:23
* 目標角色
*/

public interface Target {
    int get110v();
    int get220v();
}
 
/**
* Created by IntelliJ IDEA.
* User: leizhimin
* Date: 2008-8-2 14:43:07
* 適配器角色:擴展源角色,實現目標角色,從而使得目標角色改動時候,不用改動源角色,只要改動適配器
*/

public class Adapter extends Adaptee implements Target{
    public int get110v(){
        return 110;
    }
}
 
/**
* Created by IntelliJ IDEA.
* User: leizhimin
* Date: 2008-8-2 15:00:31
* 客戶端
*/

public class Client {
    public static void main(String rags[]) {
        new Client().test();
    }

    public void test() {
        Target target = new Adapter();
        int v1 = target.get110v();
        int v2 = target.get220v();
    }
}
 
適配器通過擴展源角色,同時實現目標接口,從而滿足了同時提供220v,110v電壓的要求。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章