适配器(Adaptor)是大家日常生活中基本上天天要接触的。 电脑, 笔记本, 手机等等接上电源就得用到适配器。
那适配器是用来干什么的呢? 适配器就是将一个接口或类转换为另一个接口或类。
现在很多网站都和腾讯,新浪等合作, 比如通过QQ号或微波就可以直接登录原来的网站。
那这里面就肯定存在一个用户信息的转换过程。 因为两个不同的公司对用户信息的设计完全一样的可能性几乎等于中双色球头奖。。。 那么我们的Adaptor就可以大打出手了。
先看看我们假定的两个用户信息接口/类
public interface SinaUserInfo {
String getAddress(String userName);
String getBirthday(String userName);
}
public interface TecentUserInfo {
public TecentUser getUsesrInfo(String userName);
}
其实现类
public class SinaBlogUser implements SinaUserInfo {
@Override
public String getAddress(String userName) {
System.out.println("从sina数据库中查找address");
return userName + "'Sina Address1";
}
@Override
public String getBirthday(String userName) {
System.out.println("从sina数据库中查找birthday");
return userName + "'Sina Birthday1";
}
}
public class TecentQQUser implements TecentUserInfo {
@Override
public TecentUser getUsesrInfo(String userName) {
System.out.println("从tecent数据库中查找QQ user info");
return new TecentUser(userName, "HZ, China", "2011-10-10");
}
}
现在引入Adaptor
public class UserAdaptor extends TecentQQUser implements SinaUserInfo {
@Override
public String getAddress(String userName) {
return super.getUsesrInfo(userName).getAddress();
}
@Override
public String getBirthday(String userName) {
return super.getUsesrInfo(userName).getBirthday();
}
}
好了, 先看看没有Adaptor的时候只取SinaBlog的用户信息
public class Client {
public static void main(String[] args) {
String userName = "小三";
SinaUserInfo user = new SinaBlogUser();
String address = user.getAddress(userName);
System.out.println("Address = " + address);
String birthday = user.getBirthday(userName);
System.out.println("Birthday = " + birthday);
}
}
执行结果:
引用
从sina数据库中查找address
Address = 小三'Sina Address1
从sina数据库中查找birthday
Birthday = 小三'Sina Birthday1
好啦, 先在看看怎样去找TecentQQ的用户信息
public class Client {
public static void main(String[] args) {
String userName = "小三";
// 唯一该的就是把SinaBlogUser -> UserAdaptor
SinaUserInfo user = new UserAdaptor();
String address = user.getAddress(userName);
System.out.println("Address = " + address);
String birthday = user.getBirthday(userName);
System.out.println("Birthday = " + birthday);
}
}
那看看执行结果有什么区别呢
引用
从tecent数据库中查找QQ user info
Address = HZ, China
从tecent数据库中查找QQ user info
Birthday = 2011-10-10
分享到:
相关推荐
今天我们要探讨的是JAVA设计中的两个重要模式:抽象类与适配器模式。 首先,我们来理解一下“抽象”。抽象是面向对象编程的核心概念之一,它帮助我们处理对象的复杂性。在Java中,抽象通常通过抽象类来实现。抽象类...
在这个Java实现中,我们将深入探讨适配器模式的两大类型:类适配器模式和对象适配器模式,并通过具体的代码示例和UML类图来阐述其工作原理。 首先,我们来理解适配器模式的基本概念。适配器模式就像现实生活中的...
适配器模式是一种常用的设计模式,它在软件工程中扮演着重要的角色,特别是在解决系统间的兼容性和接口不匹配问题时。适配器模式的核心思想是将一个类的接口转换成客户希望的另一个接口,使原本由于接口不兼容而无法...
适配器模式是一种常用的设计模式,它在软件工程中扮演着重要的角色,特别是在解决系统间的兼容性和接口不匹配问题时。适配器模式的核心思想是将一个类的接口转换成客户希望的另一个接口,使原本由于接口不兼容而无法...
Java动态代理模式与适配器模式是两种在软件设计中常用的设计模式,它们都有各自的优点和应用场景。在Java中,动态代理模式主要依赖于Java的反射API和InvocationHandler接口,而适配器模式则用于解决不同接口之间的...
适配器模式是一种在软件工程中广泛使用的结构型设计模式,它允许两个不兼容的接口之间进行通信。在Java中,适配器模式扮演着重要的角色,尤其在处理遗留代码或者第三方库集成时,能够有效地解决接口不匹配的问题。...
适配器模式是一种设计模式,它允许不兼容的类或接口之间进行通信,通过创建一个适配器类作为中间桥梁,使得原本不匹配的接口能够协同工作。在Java中,适配器模式广泛应用于系统集成、旧代码复用以及第三方库的兼容性...
适配器模式是一种软件设计模式,它允许两个不兼容的接口之间进行通信。在这个案例中,我们关注的是如何通过适配器模式解决实际编程问题。文章《适配器模式案例代码》提供了具体的实现示例,链接指向了CSDN博主...
适配器模式是一种常用的设计模式,它在软件工程中扮演着重要的角色,特别是在处理系统集成、遗留代码重用以及不同接口之间兼容性问题时。适配器模式的主要目的是将两个不兼容的接口融合在一起,使得原本无法直接协作...
适配器模式是一种常用的设计模式,它在软件开发中起到了桥梁的作用,允许两个不兼容的接口之间进行通信。在这个“适配器模式demo源码”中,我们可以深入理解这一模式的实现方式及其应用场景。 适配器模式的核心思想...
适配器模式是一种软件设计模式,它在不同的接口之间起到了桥梁的作用,使得原本由于接口不兼容而无法协作的类能够协同工作。这种模式的核心思想是将一个类的接口转换成客户希望的另一个接口,从而使原有类能适应新的...
适配器模式是一种常用的设计模式,它在软件工程中扮演着重要的角色,允许不同接口的类之间进行通信。适配器模式的核心思想是将一个类的接口转换成客户期望的另一个接口,使得原本由于接口不兼容而无法一起工作的类...
适配器模式是一种软件设计模式,它允许两个不兼容的接口之间进行通信。在本实验中,我们将深入探讨适配器模式的概念、应用场景以及如何在实际编程中实现它。适配器模式通常分为类适配器和对象适配器两种形式。 ...
适配器模式是一种常用的设计模式,它在软件工程中扮演着重要的角色,允许不兼容的接口之间进行通信。在这个源代码实例中,我们看到的是如何通过适配器模式来实现不同对象之间的协作,使得原本无法直接交互的系统组件...
适配器模式(Adapter)是软件工程中一种常用的设计模式,它允许两个不兼容的接口之间进行通信。在C++编程中,适配器模式能够帮助我们复用现有的类,或者将第三方库的接口与我们的系统接口进行对接,从而提高代码的可...