标签:
一个系统 要使用另一个系统的 数据源 ,但 数据源 格式 不符合自己的需求, 这种情况可以采用 适配器模式
一个例子:人事系统 提供 的 数据 返回的 是 Map类型,但是 财务系统 需要的 是 List 类型的数据
人事系统提供的 数据源:
1 import java.util.HashMap; 2 import java.util.Map; 3 4 public class People { 5 public Map<Object, Object> getOrgName() { 6 Map<Object, Object> map = new HashMap<>(); 7 map.put(1, "人事处"); 8 map.put(2, "行政处"); 9 map.put(3, "财务处"); 10 return map; 11 } 12 }
人事系统中的调用方式:
1 import java.util.Map; 2 3 public class PClient { 4 5 public static void main(String[] args) { 6 People people = new People(); 7 Map<Object, Object> map = people.getOrgName(); 8 for (int i = 0; i < map.size(); i++) { 9 System.out.println(map.get(i + 1)); 10 } 11 12 } 13 14 }
财务系统使用数据源 适配器:
1 import java.util.ArrayList; 2 import java.util.Map; 3 4 public class PeopleAdapter extends ArrayList<Object> { 5 private Map<?, ?> map; 6 7 public PeopleAdapter(Map<?, ?> map) { 8 super(); 9 this.map = map; 10 } 11 12 public int size() { 13 return map.size(); 14 } 15 16 public Object get(int i) { 17 return map.get(i); 18 } 19 }
财务系统调用:
1 public class EClient { 2 3 public static void main(String[] args) { 4 PeopleAdapter list = new PeopleAdapter(new People().getOrgName()); 5 for (int i = 0; i < list.size(); i++) { 6 System.out.println(list.get(i + 1)); 7 } 8 } 9 10 }
标签:
原文地址:http://www.cnblogs.com/ChuangZhang/p/5349858.html