`
ttitfly
  • 浏览: 616719 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

适配器(Adapter)模式(包装模式)

阅读更多
适配器(Adapter)模式也叫包装模式,主要有两种实现形式:
A:类适配器模式
B:对象适配器模式

都有三种角色
1:Target:供客户端调用
2:Adaptee:具体调用角色
3:Adapter:包装角色



A:类适配器模式(继承)
package com.pattern.adapter.classadapter;
/**
 * 客户端要使用的目标类
 *
 */
public interface Target {
	
	public void method1();

}


package com.pattern.adapter.classadapter;

public class Adaptee {
	
	public void method2(){
		System.out.println("执行...");
	}

}


package com.pattern.adapter.classadapter;
//继承Adaptee类
public class Adapter extends Adaptee implements Target {

	//包装类
	public void method1() {
		this.method2();
	}

}


package com.pattern.adapter.classadapter;
//适配器模式也叫包装模式
public class Client {
	//类适配器模式
	public static void main(String[] args){
		Target target = new Adapter();
		target.method1();
	}

}



B:对象适配器模式(对象组合)

package com.pattern.adapter.objectadapter;
/**
 * 客户端要使用的目标类
 *
 */
public interface Target {
	public void method1();
}


package com.pattern.adapter.objectadapter;

public class Adaptee {
	
	public void method2(){
		System.out.println("执行...");
	}

}


package com.pattern.adapter.objectadapter;

//不继承Adaptee类
public class Adapter implements Target {

	private Adaptee adaptee ;
	public Adapter(Adaptee adaptee){
		this.adaptee = adaptee;
	}
	
	public void method1() {
		adaptee.method2();
	}

}


package com.pattern.adapter.objectadapter;
//适配器模式也叫包装模式
public class Client {
	//对象适配器模式
	public static void main(String[] args){
		Target target = new Adapter(new Adaptee());
		target.method1();
	}

}

分享到:
评论

相关推荐

    设计模式中的适配器设计模式

    java中的适配器模式,Adapter设计模式(包装器)23种设计模式之一

    设计模式,适配器模式

    1. 概述  将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类... 3.3 适配器(Adapter):通过包装一个需要适配的对象,把原接口转换成目标接口。  4. 模式解读

    Adapter适配器模式在JavaScript设计模式编程中的运用分析

    适配器模式(Adapter)是将一个类(对象)的接口(方法或属性)转化成客户希望的另外一个接口(方法或属性),适配器模式使得原本由于接口不兼容而不能一起工作的那些类(对象)可以一些工作。速成包装器(wrapper)...

    07适配器与组合1

    适配器模式• 模式动机• 在适配器模式中可以定义一个包装类,包装不兼容接口的对象,这个包装类指的就是适配器(Adapter),它所包装的对象就是适配者• 适配器

    C# 设计模式系列教程-适配器模式

    Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。 2. 解决的问题  即Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。 3. 模式中的角色  3.1 目标接口(Target...

    .NET适配器模式讲解

    Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 在计算机编程中,适配器模式(有时候也称包装样式或者包装)将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在...

    深入理解JavaScript系列(39):设计模式之适配器模式详解

    适配器模式(Adapter)是将一个类(对象)的接口(方法或属性)转化成客户希望的另外一个接口(方法或属性),适配器模式使得原本由于接口不兼容而不能一起工作的那些类(对象)可以一些工作。速成包装器(wrapper)...

    深入浅出Java设计模式之适配器模式

    通常,客户类(clientsofclass)通过类的接口访问它提供的服务。有时,现有的类(existingclass)可以提供客户类的功能需要,但是它所提供的接口不一定是客户类所期望的。...这个包装类指的就是适配器(Adapter),它包装的对

    Delphi模式编程第一分卷

    9.3.1 用适配器模式包装第三方API的范例 9.3.2 范例小结 第10章 桥接模式(Bridge) 10.1 模式解说 10.2 结构和用法 10.2.1 模式结构 10.2.2 代码模板 10.3 范例与实践 10.3.1 使用桥接模式改进数据持久层的...

    Delphi模式编程第二分卷

    9.3.1 用适配器模式包装第三方API的范例 9.3.2 范例小结 第10章 桥接模式(Bridge) 10.1 模式解说 10.2 结构和用法 10.2.1 模式结构 10.2.2 代码模板 10.3 范例与实践 10.3.1 使用桥接模式改进数据...

    JavaScript适配器模式原理与用法实例详解

    适配模式可用来在现有接口和不兼容的类之间进行适配,使用这种模式的对象又叫包装器(wrapper),因为它们是在用一个新的接口包装另一个对象。 基本理论 适配器模式:将一个接口转换成客户端需要的接口而不需要去...

    捕鱼java源码-adapter:适配器

    适配器模式允许您将不兼容的对象包装在适配器中以使其与另一个类兼容。 维基百科说 在软件工程中,适配器模式是一种软件设计模式,它允许将现有类的接口用作另一个接口。 它通常用于使现有类与其他类一起工作,而...

    C#23种设计模式_示例源代码及PDF

    调停者模式: 调停者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显 调停者模式 作用。 从而使他们可以松散偶合。 当某些对象之间的作用发生改变时, 不会立即影响其他 的 一些对象之间的作用。 ...

    C-Sharp-Stuctural-Design-Patterns:C#结构设计模式

    结构设计模式对Adapter,Composite和Decorator设计模式的Shord描述和使用示例。 在软件工程中,结构设计模式是通过识别实现实体之间关系的简单方法来简化设计的设计模式。适配器图案意向将类的接口转换为客户端期望...

    ioBroker.ham:在ioBroker中支持homebridge插件

    默认(包装)模式 在默认模式下,适配器允许您直接使用homebridge插件模块。 您可以通过在NPM网站上浏览所有可用 。 您只需将模块列表添加到Adapter配置中,并在JSON编辑器中提供配置(请参阅插件说明)。 此后,...

    diffbot-php-client:[不建议使用-维护模式-请直接使用API​​!]官方Diffbot客户端库

    已过时/已被淘汰-请更喜欢直接使用API​​调用,它们已简化以实现最大可用性...composer require php-http/guzzle6-adapter 该适配器满足客户端实现的要求(请参见上文),并且可以通过以下方式安装客户端: compose

    java 面试题 总结

    JAVA相关基础知识 1、面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用...

    超级有影响力霸气的Java面试题大全文档

    超级有影响力的Java面试题大全文档 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。...

Global site tag (gtag.js) - Google Analytics