`
阅读更多

接下来的两个模式目的就是:Connecting different types

Adapter takes one type and produces an interface to some other type. When you’ve got this , and you need that , Adapter solves the problem. The only requirement is to produce a that , and there are a number of ways you can accomplish this adaptation.

//: adapter:SimpleAdapter.java

// "Object Adapter" from GoF diagram

package adapter;

import junit.framework.*;

 

class Target {

  public void request() {}

}

 

class Adaptee {

  public void specificRequest() {

    System.out.println("Adaptee: SpecificRequest");

  }

}

 

class Adapter extends Target {

  private Adaptee adaptee;

  public Adapter(Adaptee a) {

    adaptee = a;

  }

  public void request() {

    adaptee.specificRequest();

  }

}

 

public class SimpleAdapter extends TestCase  {

  Adaptee a = new Adaptee();

  Target t = new Adapter(a);

  public void test() {

    t.request();

  }

  public static void main(String args[]) {

    junit.textui.TestRunner.run(SimpleAdapter.class);

  }

} ///:~

......


正如作者论述的:

I’m taking liberties with the term “proxy” here, because in Design Patterns they assert that a proxy must have an identical interface with the object that it is a surrogate for. However, if you have the two words together: “proxy adapter,” it is perhaps more reasonable.


Adapter设计模式在格式上是和Proxy有很大相似之处.都是很好地应用了组合或者继承构造了新类。这个在实际应用当中就能体会到,总是看简单样例,感觉没有什么区别....继续前行!

分享到:
评论

相关推荐

    PyPI 官网下载 | nonebot-adapter-feishu-2.0.0a13.tar.gz

    《PyPI官网下载 | nonebot-adapter-feishu-2.0.0a13.tar.gz》 在Python的世界里,PyPI(Python Package Index)是最重要的资源库,它为全球开发者提供了一个集中分享和下载Python软件包的平台。本文将深入探讨与...

    chartjs-adapter-moment

    chartjs-adapter-moment 概述 该适配器允许Moment.js与Chart.js一起使用。 Moment.js是一个非常繁重的库,因此不建议用于客户端开发。 但是,它以前是Chart.js支持的唯一库,因此继续受到支持。 对于较小的捆绑包...

    Wireless-USB-Adapter

    无线USB适配器 欢迎使用无线USB适配器 支持macOS Catalina 10.15,macOS Mojave 10.14,macOS High Sierra 10.13,macOS Sierra 10.12,OS X El Capitan 10.11,OS X Yosemite 10.10,OS X Mavericks 10.9 ...

    adapter.rar

    在Spring Boot应用中,适配器(Adapter)模式是一种常用的设计模式,用于在不同组件之间建立桥梁,使得原本不兼容的接口或者类能够协同工作。本项目中的"adapter.rar"可能是一个包含Spring Boot适配器实现的压缩包,...

    reactjs-modulo13-novo:using使用React测试库,jest-dom,@ typesjest,jest-localstorage-mock,Redux,Redux-Saga,Immer,Axios,axios-mock-adapter和react-app-rewired在ReactJS中进行测试

    ReactJS-模块13(新) 使用React测试库,jest-dom,@ types / jest,jest-localstorage-mock,Redux,Redux-Saga,Immer,Axios,axios-mock-adapter和react-app-rewired在ReactJS上进行测试。 指数 图书馆 发展 ...

    Wireless-USB-Big-Sur-Adapter:访问博客

    无线USB Big Sur适配器 欢迎使用无线USB Big Sur适配器 仅支持macOS Big Sur 11! (请勿在其他操作系统上使用) 对于具有OpenCore的Hackintosh,最好使用此➢※※※ 对于使用的Hackintosh三叶草它能够更好地使用...

    Wireless.USB.Adapter-V8.zip

    支持设备:ASUS_USB-N10E_92CU ASUS_USB-N13_92CU ASUS_USB-N10_92CU ASUS_1870_8812BU ASUS_USB-N10E_92CU ASUS_USB-N10_92CU ASUS_USB-N13_92CU ASUS_USB-AC53_8812BU ASUS_USB-AC55B1_8812BU ASUS_USB-AC...

    Android代码-Android_Learning_Notes

    Android_Learning_Notes 这是我的安卓学习笔记。...13、Android13--常见控件(二) 14、Android14--Adapter 15、Android15--ListView 16、Android16--自定义控件 18、Android18--菜单 数据存储 待学习。 网络与通信 待

    USB4 1.0 ECN - Upstream Adapter RO.pdf

    此外,在13.6.1节“Router Configuration Space”中,同样强调了路由器必须支持表13-12定义的“Router Configuration Space Basic Attributes”。这里也再次确认了上游适配器字段的只读属性,并指出设备路由器的...

    HCIA-Storage(H13-611).docx

    - FC HBA (Fibre Channel Host Bus Adapter):服务器与SAN之间的连接适配器。 2. **非必需组件**: - FC 交换机:虽然FC 交换机能够提升网络的灵活性和扩展性,但它并不是构建FC SAN环境所必需的。 - 操作系统...

    HCNA-Cloud-BCCP(H13-511)认证考试题库.docx

    考生需要注意与操作系统的特定版本(A)、HBA(Host Bus Adapter)卡(B)以及iSCSI启动器软件(D)的兼容性。服务器系统硬盘驱动器(C)虽然也是硬件组成部分,但不是多路径安装要考虑的主要兼容性组件。 【存储...

    Y-105 USB To Serial Adapter_PLC_

    标题中的“Y-105 USB To Serial Adapter_PLC_”指的是一个专为PLC(可编程逻辑控制器)设计的USB转串口适配器。这类设备主要用于将现代计算机或设备的USB接口转换为传统的串行接口,以便与工业自动化系统中的PLC进行...

    HCNA-Storage(H13-611).pdf

    2. FC SAN环境:在FC SAN(Fibre Channel Storage Area Network)环境中,必要的组件包括存储设备和FC HBA(Fibre Channel Host Bus Adapter),而FC交换机和Windows操作系统不是必需的。 3. SmartThin技术:华为...

    comfast811ac-mac.zip

    前往https://github.com/chris1111/Wireless-USB-Big-Sur-Adapter下载安装以驱动网卡,如果因系统保护无法打开而导致驱动未生成到EFI可在此下载驱动RtWlanU和RtWlanU1827添加到EFI 我用的oc,Big Sur11.5使用正常 ...

    华为存储认证HCIA Storage (H13-611)题库 v4.0

    - **存储设备** 和 **FC HBA (Host Bus Adapter)** 是 FC SAN 环境中的必备组件,前者用于存储数据,后者用于实现服务器与存储设备之间的通信。 ### 3. SmartThin 技术 **SmartThin** 是华为存储产品中的一项关键...

    C#设计模式-吕震宇

    C#设计模式(13)-Proxy Pattern C#设计模式(12)-Decorator Pattern C#设计模式(11)-Composite Pattern C#设计模式(10)-Adapter Pattern C#设计模式(9)-Prototype Pattern C#设计模式(8)-Builder ...

    黑苹果wifi驱动支持绝大部分类型

    https://github.com/chris1111/Wireless-USB-Adapter-Clover Support macOS Catalina 10.15, macOS Mojave 10.14, macOS High Sierra 10.13, macOS Sierra 10.12, OS X El Capitan 10.11, OS X Yosemite 10.10, OS X...

    USB4 1.0 ECN - Response to Control Adapter Access.pdf

    在这个变更中,主要的改动集中在设备路由器(Device Router)如何响应TBT3连接管理器对其控制适配器(Control Adapter)适配器配置空间(Adapter Configuration Space)的访问。 **功能变更的简要描述:** 这个...

    bmi160调通bmi160的ACC+GYR_20160907.7z

    13. octopus_perf-eng Which would you like? [aosp_arm-eng] 13 ============================================ PLATFORM_VERSION_CODENAME=REL PLATFORM_VERSION=4.4.4 TARGET_PRODUCT=octopus_perf TARGET_...

    Eclipse插件开发学习笔记(ch13-14)

    你还将学习如何实现内容提供者(ContentProvider)、适配器(Adapter)以及标记模型(MarkedModel)来增强编辑器的功能,如语法高亮、自动完成和错误检测。 第14章“透视图(Perspectives)”则关注的是Eclipse的...

Global site tag (gtag.js) - Google Analytics