package com.design.model.adapter;
//目标1
interface IJpan {
public String provid110V();
}
//目标2
interface IChina {
public String provid220V();
}
//适配器
interface IAadpter{
public String provid110V();
public String provid220V();
}
public class Jpan implements IJpan{
@Override
public String provid110V() {
// TODO Auto-generated method stub
return "110V";
}
}
class China implements IChina{
@Override
public String provid220V() {
// TODO Auto-generated method stub
return "220V";
}
}
//适配器转换 1 默认为类适配器 2 注释掉extends Jpan 为对象适配器
class Adapter
// extends Jpan
implements IChina,IAadpter {
//需注入IOC
IJpan jpan= new Jpan();
@Override
public String provid220V() {
// TODO Auto-generated method stub
return "220V";
}
@Override
public String provid110V() {
// TODO Auto-generated method stub
return jpan.provid110V();
}
/* public String provid110V() {
// TODO Auto-generated method stub
return super.provid110V();
}*/
public static void main(String[] args) {
IAadpter adp= new Adapter();
String str1=adp.provid220V();
String str2=adp.provid110V();
System.out.println(str1+" "+str2);
}
}
//输出:220V 110V
对象适配器模式:
package com.design.model.adapter;
import java.util.HashMap;
import java.util.Map;
/**
* 适配器之 对象适配
* @author jakbb
*
*/
interface ICorpInfo {
public String getCorpName();
public String getCorpAddress();
}
interface ICorpInfo2 {
public Map<String,String> getCorpInfo();
}
public class CorpInfo implements ICorpInfo{
@Override
public String getCorpName() {
// TODO Auto-generated method stub
return "中国移动";
}
@Override
public String getCorpAddress() {
// TODO Auto-generated method stub
return "北京";
}
}
class CorpInfo2 implements ICorpInfo2{
@Override
public Map<String, String> getCorpInfo() {
// TODO Auto-generated method stub
Map<String,String> map= new HashMap<String,String>();
map.put("corpName", "中国联通");
map.put("corpAddress", "北京朝阳");
return map;
}
}
class CorpAdapter extends CorpInfo2 implements ICorpInfo{
Map<String,String> map = super.getCorpInfo();
@Override
public String getCorpName() {
// TODO Auto-generated method stub
return map.get("corpName");
}
@Override
public String getCorpAddress() {
// TODO Auto-generated method stub
return map.get("corpAddress");
}
public static void main(String[] args) {
ICorpInfo corpInfo= new CorpAdapter();
String address=corpInfo.getCorpAddress();
String corpName=corpInfo.getCorpName();
System.out.println(address);
System.out.println(corpName);
}
}
/*输出:
北京朝阳
中国联通*/
默认适配器:

1.对象适配器与目标客户关系为实现。
2.类适配器为与目标客户关系为依赖。
3.默认适配器 直接继承 不实现接口。
适配器模式不适合在系统设计阶段采用,没有一个系统分析师会在做详设的时候考虑使用适配器模式,
这个模式使用的主要场景是扩展应用中,就像我们上面的那个例子一样,系统扩展了,不符合原有设计的
时候才考虑通过适配器模式减少代码修改带来的风险。

- 大小: 39.5 KB
分享到:
相关推荐
根据提供的文件信息,我们可以推断出这份文档主要与J2EE设计模式有关,并且提供了相关的下载资源。下面将从以下几个方面来详细介绍J2EE设计模式的相关知识点: ### J2EE设计模式简介 J2EE(Java 2 Platform, ...
#### 二、J2EE设计模式概览 J2EE(Java Platform, Enterprise Edition)是一套企业级Java应用开发的标准框架,它提供了许多高级服务,如事务管理、安全性和集群支持等。为了更好地利用这些服务,开发者们总结了许多...
在深入探讨《23种Java设计模式和15种J2EE设计模式》这一主题之前,我们首先需要明确设计模式的概念及其在软件工程中的重要性。设计模式是一种在特定情境下解决问题的模板,它描述了在软件设计中遇到的问题以及解决...
《实用J2EE设计模式编程指南》是一本深入讲解如何在Java企业级环境中应用设计模式的书籍。在Java EE(以前称为J2EE)平台上,设计模式是开发可扩展、可维护和高效软件的关键工具。以下是一些核心知识点的详细说明: ...
**J2EE设计模式API** 是一套用于构建可扩展、高效和可维护的企业级Java应用程序的框架和最佳实践。设计模式是软件开发中经过验证的解决方案模板,可以在特定上下文中解决常见问题。J2EE(Java Platform, Enterprise ...
"最新的购物思想、最新的购物理念、最新的市场便捷"这部分描述可能指的是J2EE设计模式在电子商务领域的创新应用,如微服务架构、前后端分离、容器化部署等现代技术趋势。代码开放意味着源代码可供学习和改进,这对于...
通过这份"J2EE设计模式与Structs详解"资料,读者可以深入理解如何在实际项目中运用这些设计模式,以及如何借助Structs框架提升开发效率。精通Struts技术文档则结合实践经验,为开发者提供了宝贵的项目开发指导,包括...
《实用J2EE设计模式编程指南》是一本深入讲解如何在Java企业版(J2EE,现称为Java EE)环境中应用设计模式的重要参考资料。设计模式是软件开发中的宝贵经验总结,它提供了解决常见问题的可重用解决方案,极大地提高...
【J2EE设计模式】是Java企业级应用开发中的重要组成部分,主要分为创建型、结构型和行为型三种模式。这些模式提供了优雅的解决方案,帮助开发者处理常见的设计问题,提高代码的可重用性、可扩展性和可维护性。 ### ...
【JAVA设计模式与J2EE设计模式】 设计模式是软件工程中的一种标准解决方案,用于解决常见问题和构建高质量、可维护的代码。Java设计模式分为两大类:创建型模式和结构型模式,它们在J2EE(Java 2 Enterprise ...
对于J2EE设计模式的介绍虽然没有具体描述,但它们通常是在Java企业版开发中,用于解决服务端的特定问题,如会话管理、事务处理、数据访问等方面的设计问题。J2EE设计模式的运用能够帮助开发者更好地构建企业级应用,...