24種設計模式之---(適配器模式)

我們先看客戶端需求
public class testclient {
        public static void main(String[] args) {
                // TODO Auto-generated method stub

     Map map;
     application.excute(map);//要求輸出map數據
     System.out.print(b);
        }
}
//map數據類型輸出程序
package com.moshi.adapter;
import java.util.HashMap;

public class application {
   public void excute(HashMap map){
           for(int i=0;i<map.size();i++){
                   System.out.println(map.get(i+""));
           }
   }
}
這都定義好了 但我們只實現了返回List數據類型的類
實例代碼如下--------------------------------------------------------------

package com.moshi.adapter;
import java.util.ArrayList;
import java.util.List;
public class listserver {
    public List getList(){
            List list=new ArrayList();
            list.add("張三");
            list.add("李四");
            list.add("王五");
            return list;
    }
}

所以這裏要定義一個list的適配器類 完成數據類型的匹配。。。
適配器類代碼如下:

package com.moshi.adapter;
import java.util.HashMap;
import java.util.List;

public class listadapter extends HashMap{
    private List list;
    public listadapter(List listserver){
            this.list=listserver;
    }
    public int size(){
            return list.size();
    }
    public Object get(Object i){
            return list.get(Integer.valueOf(i.toString()).intValue());
    }
}
這個就是適配器的作用。。
然後再在客戶端輸出

package com.moshi.adapter;

import java.util.List;
import java.util.Scanner;
public class testclient {
        public static void main(String[] args) {
     application application=new application();
     listserver listserver=new listserver();
     List list=listserver.getList();
     Map listadapter=new listadapter(list);//list->map的適配器
     application.excute(listadapter);//輸出map型的數據
     Scanner scanner=new Scanner(System.in);
     double b=scanner.nextDouble();
     System.out.print(b);
        }

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