`

设计模式----适配器模式(adapter)

 
阅读更多
IUserInfo.java代码如下:
package com.designPattern.adapter;

/**
 * 公司员工属性
 * @author yangjianzhou
 *
 */
public interface IUserInfo {

	public String getUserName();
	
	public String getHomeAddress();
	
	public String getMobileNumber();
	
	public String getOfficeTelNumber();
	
	public String getJobPosition();
	
	public String getHomeTelNumber();
}



UserInfo.java代码如下:
package com.designPattern.adapter;

/**
 * 公司内部正式员工
 * @author yangjianzhou
 *
 */
public class UserInfo implements IUserInfo{

	@Override
	public String getMobileNumber() {
		System.out.println("这是员工的手机号码!");
		return null;
	}

	@Override
	public String getOfficeTelNumber() {
		System.out.println("这是员工的公司电话!");
		return null;
	}

	@Override
	public String getJobPosition() {
		System.out.println("这是员工的职位!");
		return null;
	}

	@Override
	public String getHomeTelNumber() {
		System.out.println("这是员工的家庭电话!");
		return null;
	}

	@Override
	public String getUserName() {
		System.out.println("这是员工的姓名!");
		return null;
	}

	@Override
	public String getHomeAddress() {
		System.out.println("这是员工的家庭住址!");
		return null;
	}
	
}



IOuterUser.java代码如下:
package com.designPattern.adapter;

import java.util.Map;

public interface IOuterUser {

	public Map<String,String> getUserBaseInfo();
	
	public Map<String,String> getUserOfficeInfo();
	
	public Map<String,String> getUserHomeInfo();
}



OuterUser.java代码如下:
package com.designPattern.adapter;

import java.util.HashMap;
import java.util.Map;

public class OuterUser implements IOuterUser{

	@Override
	public Map<String,String> getUserBaseInfo() {
		HashMap<String,String> baseInfoMap = new HashMap<String,String>();
		baseInfoMap.put("username", "员工姓名!");
		baseInfoMap.put("mobileNumber", "员工电话!");
		
		return baseInfoMap;
	}

	@Override
	public Map<String,String> getUserOfficeInfo() {
		HashMap<String,String> officeInfoMap = new HashMap<String,String>();
		officeInfoMap.put("jobPosition", "员工的职位!");
		officeInfoMap.put("officeTelNumber", "员工的办公电话!");
		
		return officeInfoMap;
	}

	@Override
	public Map<String,String> getUserHomeInfo() {
		HashMap<String,String> homeInfoMap = new HashMap<String,String>();
		homeInfoMap.put("homeTelNumber", "员工的家庭电话!");
		homeInfoMap.put("homeAddress", "员工的家庭地址!");
		return homeInfoMap;
	}

}



OuterUserInfo.java代码如下:
package com.designPattern.adapter;

import java.util.Map;

/**
 * 适配器模式实现类
 * @author yangjianzhou
 *
 */
public class OuterUserInfo extends OuterUser implements IUserInfo{

	private Map<String,String> baseInfo = super.getUserBaseInfo();
	
	private Map<String,String> homeInfo = super.getUserHomeInfo();
	
	private  Map<String,String> officeInfo = super.getUserOfficeInfo();
	
	@Override
	public String getUserName() {
		String username = baseInfo.get("username");
		System.out.println(username);
		return username;
	}

	@Override
	public String getHomeAddress() {
		String address = homeInfo.get("homeAddress");
		System.out.println(address);
		return address;
	}

	@Override
	public String getMobileNumber() {
		String mobileNumber = baseInfo.get("mobileNumber");
		System.out.println(mobileNumber);
				
		return mobileNumber;
	}

	@Override
	public String getOfficeTelNumber() {
		String officeTelNumber = officeInfo.get("officeTelNumber");
		System.out.println(officeTelNumber);
		return officeTelNumber;
	}

	@Override
	public String getJobPosition() {
		String jobPosition = officeInfo.get("jobPosition");
		System.out.println(jobPosition);
		return jobPosition;
	}

	@Override
	public String getHomeTelNumber() {
		String homeTelNumber = homeInfo.get("homeTelNumber");
		System.out.println(homeTelNumber);
		return homeTelNumber;
	}
	
	public String toString(){
		return this.getUserName()+" : "+this.getMobileNumber()+":"+this.getHomeAddress()+":"+this.getHomeTelNumber()
				+":"+this.getOfficeTelNumber()+":"+this.getJobPosition();
		
	}

}



App.java代码如下:
package com.designPattern.adapter;

public class App {

	public static void main(String[] args) {

		IUserInfo userInfo = new OuterUserInfo();

		System.out.println(userInfo);
	}

}



运行结果如下:
员工姓名!
员工电话!
员工的家庭地址!
员工的家庭电话!
员工的办公电话!
员工的职位!
员工姓名! : 员工电话!:员工的家庭地址!:员工的家庭电话!:员工的办公电话!:员工的职位!

分享到:
评论

相关推荐

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

    适配器模式是一种软件设计模式,它允许两个不兼容的接口之间进行通信。在软件工程中,这种模式常被用来解决旧系统与新系统、第三方库或者不同组件之间的接口不匹配问题。适配器模式的核心思想是通过创建一个新的类...

    设计模式--适配器模式java例子

    适配器模式是一种软件设计模式,它允许两个不兼容的接口之间进行通信。在Java编程中,这种模式常用于解决新旧系统之间的对接问题,或者是引入第三方库时接口不匹配的情况。适配器模式的核心思想是创建一个新的类...

    设计模式 - 适配器模式(C++实例)

    适配器模式是一种常用的设计模式,它在软件工程中扮演着重要的角色,特别是在解决系统间的兼容性和接口不匹配问题时。适配器模式的核心思想是将一个类的接口转换成客户希望的另一个接口,使原本由于接口不兼容而无法...

    c++设计模式-结构型模式-适配器模式

    c++设计模式-结构型模式-适配器模式,其他工程,c++源码。适配器模式(Adapter)的定义如下:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。

    设计模式之 适配器 Adapter C++ 源码

    设计模式之 适配器 Adapter C++ 源码 vs2019 工具,设计模式之 适配器 Adapter C++ 源码 vs2019 工具,设计模式之 适配器 Adapter C++ 源码 vs2019 工具,设计模式之 适配器 Adapter C++ 源码 vs2019 工具,设计模式...

    PHP5设计模式-适配器模式实现

    适配器模式是一种结构型设计模式,它的主要目的是使不兼容的接口能够协同工作。在实际开发中,我们可能会遇到这样的情况:一个类库或者服务提供了一个接口,而我们的代码需要使用另一个接口。适配器模式就充当了两者...

    java常用设计模式-适配器模式

    适配器模式(Adapter Pattern)是一种结构型设计模式,它允许不兼容的接口之间进行通信。这种模式可以在不修改现有代码的情况下重用现有类,并且可以使不兼容的接口之间进行通信。 适配器模式的定义 适配器模式是...

    设计模式--适配器模式

    适配器模式是一种常用的设计模式,它在软件工程中扮演着重要的角色,特别是在解决系统间的兼容性和接口不匹配问题时。适配器模式的核心思想是将一个类的接口转换成客户希望的另一个接口,使原本由于接口不兼容而无法...

    设计模式-适配器模式(讲解及其实现代码)

    适配器模式是一种常用的设计模式,它在软件工程中扮演着重要的角色,特别是在处理系统集成、遗留代码重用以及不同接口之间兼容性问题时。适配器模式的主要目的是将两个不兼容的接口融合在一起,使得原本无法直接协作...

    设计模式之--适配器模式

    适配器模式是一种常用的设计模式,它在软件工程中扮演着重要的角色,特别是在解决系统间的兼容性和接口不匹配问题时。适配器模式的核心思想是将一个类的接口转换成客户希望的另一个接口,使原本由于接口不兼容而无法...

    C++设计模式--基于Qt4开源跨平台开发框架

    结构型模式如适配器模式(Adapter)、装饰器模式(Decorator)和代理模式(Proxy),则关注如何组合和连接类与对象,以达到新的功能。行为型模式如观察者模式(Observer)、策略模式(Strategy)和访问者模式...

    设计模式 - 适配器

    适配器模式(Adapter Pattern)是一种结构型设计模式,它允许两个不兼容的接口之间进行通信。在实际应用中,我们常常遇到这样的情况:一个系统需要使用现有的类,但其接口与系统的需求不匹配。适配器模式能解决这种...

    设计模式专题之(八)适配器模式---设计模式适配器模式示例代码(python--c++)

    适配器模式是一种软件设计模式,它允许两个不兼容的接口之间进行通信。在软件开发中,我们常常遇到这样的情况:需要使用一个已经存在的类,但是它的接口与我们的需求不匹配,这时候适配器模式就能派上用场。适配器...

    8.设计模式-适配器模式1

    适配器模式是一种软件设计模式,它允许不同的接口或类之间进行通信,即使它们的接口不兼容。适配器模式的核心思想是通过创建一个适配器类,将原有类的接口转换为客户期望的接口,从而使得原本无法协作的类能够协同...

    讲故事,学(Java)设计模式-适配器模式Java开发Ja

    适配器模式是一种结构型设计模式,它的主要目的是使不兼容的接口之间能够进行通信。在这个“讲故事,学(Java)设计模式—适配器模式”的主题中,我们将深入探讨这个模式的原理、应用和优势。 适配器模式的核心思想...

    设计模式实验报告-适配器模式.docx

    适配器模式(Adapter Pattern)是一种结构型设计模式,其主要目的是将一个类的接口变换成客户端所期待的另一种接口。通过这种方式,原本由于接口不兼容而无法一起工作的类可以顺利合作。适配器模式有两种实现方式:...

    java设计模式之适配器模式

    适配器模式是一种在软件工程中广泛使用的结构型设计模式,它允许两个不兼容的接口之间进行通信。在Java中,适配器模式扮演着重要的角色,尤其在处理遗留代码或者第三方库集成时,能够有效地解决接口不匹配的问题。...

    java设计模式---诙谐易懂版

    例如,代理模式(Proxy Pattern)、单例模式(Singleton Pattern)、工厂方法模式(Factory Method Pattern)、抽象工厂模式(Abstract Factory Pattern)、适配器模式(Adapter Pattern)、模板方法模式(Template ...

    OC-适配器模式-适配支付接口

    适配器模式是一种软件设计模式,它允许两个不兼容的接口之间进行通信。在本文中,我们将深入探讨适配器模式的应用,特别是在OC(Objective-C)中如何利用它来适配支付接口。适配器模式的核心思想是创建一个新的类,...

    Python 程序语言设计模式思路-结构型模式:适配器模式-将不兼容的接口转换为可兼容的接口

    适配器模式(Adapter Pattern)是一种结构型设计模式,旨在将一个类的接口转换为客户端期望的另一个接口,从而使原本由于接口不兼容而无法一起工作的类能够协同工作。适配器模式通过引入一个适配器类,解决了接口不...

Global site tag (gtag.js) - Google Analytics