`
hjp222
  • 浏览: 16796 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

双向适配器模式笔记

阅读更多
package com.donnie;
/*应用需要凡是以后A的对象调用了funA1方法, 一定要同时调用B的funB1方法;
 * B的对象调用了funB2方法,一定要同时调用A的funA2方法;怎么办?不能改变源代码*/
//双向适配器模式要点是:组合法

/*class A1 {
	public void funA1(){
	System.out.println("funA1 方法");	}
	public void funA2(){
		System.out.println("funA1 方法");}
}
class B1{
	public void funB1(){
		System.out.println("funB1 方法");}
	public void funB2(){
		System.out.println("funB2 方法");}
}

class AB{  //组合A和B 将AB当成A和B来使用
	private A1 a;
	private B1 b;
	public void setA(A1 a){
		this.a=a;
	}
	public void setB(B1 b){
		this.b=b;
	}
	//
	public void funA1(){
		a.funA1();
		b.funB1();
	}
	public void funB2(){
		b.funB2();
		a.funA2();
	}
}
public class Adapter2 {
public static void main (String args[]){
	AB ab =new AB();
	ab.setA(new A1());
	ab.setB(new B1());
	ab.funA1(); 
	//这样就实现对象调用了funA1方法,同时又调用了B的funB1方法
}
}*/
//-------------------------
//上面的方法不容易切换,所以还是得面向接口编程
interface IA{
	public abstract void funA1();
	public abstract void funA2();
}
class A1 implements IA{
	public void funA1(){
	System.out.println("funA1 方法");	}
	public void funA2(){
		System.out.println("funA1 方法");}
}
interface IB{
	public abstract void funB1();
	public abstract void funB2();
}
class B1 implements IB{
	public void funB1(){
		System.out.println("funB1 方法");}
	public void funB2(){
		System.out.println("funB2 方法");}
}

class AB implements IA,IB{  //组合A和B 将AB当成A和B来使用 ,实现IA,IB避免功能缺失
	private IA ia;
	private IB ib;
	public void setIa(IA ia) {
		this.ia = ia;
	}
	public void setIb(IB ib) {
		this.ib = ib;
	}
	//
	public void funA1(){
		ia.funA1();
		ib.funB1();
	}
	public void funB2(){
		ib.funB2();
		ia.funA2();
	}
	
	public void funA2() {
		ia.funA2();
		
	}
	public void funB1() {
		ib.funB2();
		
	}

}
public class Adapter2 {
public static void main (String args[]){
	AB ab =new AB();
	ab.setIa(new A1());
	ab.setIb(new B1());
	ab.funA1(); 
	//这样就实现对象调用了funA1方法,同时又调用了B的funB1方法
}
}

 

分享到:
评论

相关推荐

    USB-CAN接口适配器

    USB-CAN接口适配器是一种用于连接计算机与CAN(Controller Area Network)总线网络的设备,它通过USB接口实现数据的双向传输。这种适配器广泛应用于工业现场、汽车电子领域,提供数据采集、分析、监控和诊断等功能。...

    USB互联适配器设计管理论文.doc

    在这种并行I/O模式下,EZ-USB单片机作为主CPU,与神经元芯片(作为从CPU)之间采用令牌传递/握手协议进行双向数据通信。 并行口的工作模式有主模式、从A模式和从B模式,文中应用的是从A模式,其中EZ-USB单片机为...

    双向电压转化芯片

    1. **便携式电子设备**:如智能手机、平板电脑和笔记本电脑,这些设备通常需要在低功耗模式下运行,而双向电压转化芯片可以有效地管理电池电源,延长设备续航时间。 2. **物联网(IoT)设备**:许多IoT传感器和设备...

    CPP学习笔记1

    【CPP学习笔记1】 在C++编程中,STL(Standard Template Library,标准模板库)是不可或缺的一部分。STL提供了一系列高效、可复用的容器、迭代器、算法和函数对象,大大简化了C++的编程工作。STL的核心概念是泛型...

    双向65W PD SC8815 方案原理图.pdf

    3. 反向放电模式,在需要从电池生成输出时使用 4. 宽广的 VBAT 范围:2.7 V 到 36 V,40V 可持续 5. 宽广的 VBUS 范围:2.7 V 到 36 V,40V 可持续 6. I2C 编程充电电流和电压 7. I2C 编程放电输出电压 8. I2C 编程...

    STL标准模板库笔记

    它们提供了更灵活的编程模式,可以有状态并且可以调用。 分配器用于管理内存分配和对象构造。它们允许程序员自定义内存分配策略,以便更好地控制内存使用和性能优化。 最后,STL还提供了关于数值处理的算法和函数...

    i2c-SPI笔记

    I2C(Inter-Integrated Circuit)是一种两线式串行总线协议,它允许多个设备在两个双向线上进行通信:数据线SDA(Serial Data Line)和时钟线SCL(Serial Clock Line)。I2C 总线系统通常用于连接微控制器、传感器、...

    Note-Taking-App:一个简单的笔记应用程序,它将数据存储在SQLite数据库中并在RecyclerView中显示。 该应用程序架构遵循Model-View-ViewModel(MVVM)模式

    《基于MVVM模式的SQLite笔记应用详解》 在当今的移动开发领域,高效的数据管理和用户友好的界面设计是提升用户体验的关键。本篇文章将深入探讨一个使用Java编程语言、SQLite数据库和Model-View-ViewModel(MVVM)...

    嵌入式系统/ARM技术中的LonWorks-USB互联适配器的设计开发

    本文提到的并行口I/O模式,是其中一种常见的应用模式,通过8条双向数据线(IO0-IO7)和3条控制信号线(IO8-IO10)实现高速的数据传输,最高可达3.3Mbps。 LonWorks-USB互联适配器是将LonWorks网络与通用串行总线...

    专升本专业课的笔记 微型计算机技术与接口技术 农学院授课教案12

    3. BIOS功能调用显示技术,涉及PC系列机的文本和图形模式,如文本(字符)模式和彩色图形模式,并通过INT 10H的特定功能设置显示方式。 【音频发声系统程序设计】涵盖: 1. PC机的发声原理,包括扬声器控制驱动电路...

    PCMCIA转并口驱动.rar

    并行端口有两种主要模式:SPP(标准并行端口)和EPP(增强并行端口),EPP模式提供了更快的数据传输速度。 在描述中反复提及“PCMCIA转并口驱动”,这可能是因为在某些特定场景下,用户需要通过PCMCIA接口来使用...

    angular 学习笔记

    - WebSocket协议用于实时双向通信,需要适配器支持。 9. **构建和部署**: - 使用Angular CLI的`ng build`命令构建应用,可配置生产环境优化。 - 多环境配置(开发、测试、生产)通过环境变量实现。 10. **其他...

    DELL BIOS中英文对照表

    36. Parallel Mode (并口模式):设置并口模式的参数,包括普通标准并行口、双向模式、扩展功能端口等。 37. Num Lock (数码锁定):设置数码锁定的参数,包括启用或禁用数码锁定。 38. Keyboard NumLock (键盘数码...

    计算机网络--笔记.pdf

    MAC层还涉及到适配器的过滤功能和混杂模式。扩展以太网技术主要通过交换机和集线器来实现,它们能够提供更高效的数据传输和更广泛的覆盖范围。 以上内容为计算机网络的一些核心知识点。实际中,计算机网络是一个...

    198个电脑精华解决方案

    控制计算机并口工作方式为“NORMAL”(AT兼容)(普通标准并行口)、“BI-DIRECTIONAL”(PS/2兼容)(双向模式,允许主机和外设双向通讯)还是“ECP”(Extended Capabilities Ports,扩展功能端口)(默认)。...

    xapp1052,xilinx pcie dma模式程序。

    PCIe(Peripheral Component Interconnect Express)是高速接口标准,用于连接计算机系统中的外部设备,如显卡、网络适配器等。而DMA(Direct Memory Access)模式则是一种允许外围设备直接访问系统内存,无需CPU...

    GY8507 USBtoCAN

    这款适配器支持USB2.0接口,并且能够实现与CAN总线之间的双向数据传输。它被设计用于CAN总线产品的开发、测试以及数据分析等工作,广泛应用于现场总线测试实验室、工业控制、智能楼宇和汽车电子等领域。 **主要特点...

    ZYBO入门指导手册

    2. **外接电源供电模式**:使用标配的5V 3A电源适配器供电。 供电模式可以通过JP7跳线进行配置。 #### 四、搭建ISE开发环境 为了进行ZYBO开发板的设计和编程,需要搭建ISE(Integrated Software Environment)开发...

    bios的设置,,,,,

    控制计算机并口工作方式为"NORMAL"(AT兼容)(普通标准并行口)、"BI-DIRECTIONAL"(PS/2兼容)(双向模式,允许主机和外设双向通讯)还是"ECP"(Extended Capabilities Ports,扩展功能端口)(默认)。...

Global site tag (gtag.js) - Google Analytics