码迷,mamicode.com
首页 > 其他好文 > 详细

适配器模式 adapter

时间:2016-04-03 15:50:31      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:

一个系统 要使用另一个系统的 数据源 ,但  数据源 格式  不符合自己的需求, 这种情况可以采用 适配器模式

一个例子:人事系统 提供 的 数据 返回的 是 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 }

 

适配器模式 adapter

标签:

原文地址:http://www.cnblogs.com/ChuangZhang/p/5349858.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!