23种设计模式---(适配器模式)

a284065570 2013-10-01 10:54:07
我们先看客户端需求
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);
}

}
额 这里适配器模式讲解完毕 。。。有问题可以提 并回复!
...全文
573 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
a284065570 2013-10-02
  • 打赏
  • 举报
回复
引用 2 楼 defonds 的回复:
请问一下在那种场景下要用这种模式?这种模式和策略模式有什么区别?
适配器模式,就是当客户需求和生产出的东西类型不匹配的时候用的,这也是java思想种的对于扩展开放对于修改关闭的原则。策略模式,重点在策略,事先定义程序的框架即执行的步骤,后面再完成细节。
Defonds 2013-10-02
  • 打赏
  • 举报
回复
请问一下在那种场景下要用这种模式?这种模式和策略模式有什么区别?

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧