package com.donnie;
/*有两个模块本来没有任何关系,但是应用中需
凡是以后A的对象调用了funA方法,一定要同
调用B的funB方法,怎么办?不能改变源代码*/
//如果将B接到A上用,这叫做单向适配器模式,注意分清主动方,和被动方,这里类A是主动方,B是被动方
//单向适配器模式的要点:继承方法
/*class A{
public void funA(){
System.out.println("a 方法");
}
}
class B{
public void funB(){
System.out.print("b 方法");
}
}
class SubA extends A{ //将A进行扩展,以后将SubA当成A用
public void funA(){
super.funA();
B b=new B();
b.funB();
}
}
public class Adapter {
public static void main(String args[]){
SubA sa=new SubA();
sa.funA();
}
}*/
//----------------------------------
//假如被动方可能被切换,这样比较麻烦,为了方便,最好面向接口编程
class A{
public void funA(){
System.out.println("a 方法");
}
}
interface IEM{ //定义一个接口,管理扩展模块(被动方)
public abstract void extendFun();
}
class B implements IEM {
public void extendFun(){
System.out.print("b 方法");
}
}
class C implements IEM{
public void extendFun(){
System.out.println("另一个方法");
}
}
class SubA extends A{ //将A进行扩展,以后将SubA当成A用
private IEM iem; //完全面向接口编程,可以将IEM的任何实现类接入,Spring可以做
public SubA(IEM iem){
this.iem=iem;
}
public void funA(){
super.funA(); //假如这行去掉,就是有了功能替换的效果,假如不要A方法了,只用扩展功能的方法,就可以去掉这行
iem.extendFun();
}
}
public class Adapter {
public static void main(String args[]){
//SubA sa=new SubA(new B());
SubA sa=new SubA(new C()); //这样改下构造函数的参数就可以切换了,实现扩展功能的切换
sa.funA();
}
}
分享到:
相关推荐
### SPI应用笔记知识点详解 #### 一、SPI总线接口简介 SPI(Serial Peripheral Interface)是一种广泛用于同步数据传输的接口标准,因其相对较高的传输速率和灵活的配置方式而受到青睐。尽管SPI已经成为事实上的...
在正负半周期内,MOSFET根据输入电压的极性适时导通或关断,实现电流的单向流动,从而完成整流过程。由于MOSFET的导通电阻远低于二极管的正向压降,因此可以减少整流过程中的电压损失,提高效率。 2. **优点**: -...
PCIe(Peripheral Component Interconnect Express)是高速接口标准,用于连接计算机系统中的外部设备,如显卡、网络适配器等。而DMA(Direct Memory Access)模式则是一种允许外围设备直接访问系统内存,无需CPU...
ICE支持多种通信模式,包括同步、异步、单向和事件驱动,可以根据应用需求选择最合适的通信方式。此外,ICE还提供了强大的安全特性,如身份验证、授权和加密,确保了分布式系统间的通信安全。 Ice.ppt很可能是一个...
USB接口采用全双工通信,支持数据同时传输,而RS-232是一种单向或双向通信协议,速度较慢但应用广泛。USB转串口驱动包含一个微控制器,该控制器模拟了串行通信接口,使得USB设备能够与使用串行通信协议的硬件进行...
2. 整流工作原理:利用二极管的单向导电性,将正弦波交流电压转化为单向脉动电压。 3. 滤波工作原理:电容滤波利用电容器储存和释放电荷,使电压趋于平滑;电感滤波利用电感器的感抗阻碍电流变化,减少电压脉动。 ...
- **通信领域:** PCI Express在通信设备中的应用也非常广泛,如网络适配器、路由器等。 #### 五、PCI Express的高级特性 - **热插拔(Hot Plug):** 支持设备在不关闭系统的情况下进行插入和移除。 - **热替换...
它的尺寸较大,单向插入,但因其广泛的应用,仍被许多设备保留。 USB 3.1 C to A电缆是连接这两种接口的桥梁,使得拥有USB-C接口的新设备可以与传统的USB-A接口设备进行通信。这种电缆通常具备USB 3.1的高速传输...
2. **电源管理**:USB3.0支持更高的功率输出,允许设备在不使用额外适配器的情况下进行快速充电。同时,它引入了电源管理功能,如低功耗状态和选择性挂起,以节省能源。 3. **向下兼容**:USB3.0接口设计时考虑到了...
X4接口通常用于SSD固态硬盘,X8和X16则常见于高性能显卡和网卡,其中X16提供最大的带宽,理论上单向可以达到16GB/s,双工模式下更是翻倍。 "B面"的术语在PC硬件领域中并不常用,但根据描述,它指的是设备的面向接口...
它通过一对线(通常是RX和TX)进行单向或双向通信,传输速率较慢但足够稳定。在计算机硬件领域,串口常用于调试嵌入式系统、物联网设备、Arduino等硬件平台。 “mac版串口调试工具”正是针对Mac OS设计的一款软件,...
USB-C接口还支持双向电力传输,不再像旧的USB接口那样只能单向供电。这意味着设备可以既是电源接收器也是电源提供者,例如,可以通过USB-C接口为其他设备充电。此外,USB-C的供电能力强大,能够提供最大100W的电力,...
- **电源系统组成**:包括适配器、电池、电源管理芯片等。 - **电源需求**:CPU、内存、硬盘等不同组件对电源的要求。 - **电源上电时序**:电源开启时各个组件依次上电的过程。 - **开机电路**:控制笔记本电脑开机...
尽管文件描述的FXLP34是单向电压转换器,但基于题目要求,我们将重点放在双向电压转化芯片上,尤其是针对3.3V和5V之间的电压转换。 ### 双向电压转化芯片简介 双向电压转化芯片是一种专门设计用于在两个不同的电压...
交流电首先通过整流桥将正负交替的电流变为单向电流,然后通过电容和电感组成的滤波电路去除电压波动,最后由稳压器确保输出电压稳定,适合设备使用。 二、充电器的类型 1. 适配器式充电器:最常见的充电器形式,...
USB 3.0 接口可以提供最高900毫安的电流,比USB 2.0的500毫安有所增加,这使得外设无需额外电源就能运行,减轻了用户携带电源适配器的负担。 3. **双向数据传输**:不同于USB 2.0的单向数据通道,USB 3.0 使用了...
3. **双向电源传输**:不同于之前的USB接口只能单向供电,USB Type-C支持最高100W的电力传输,双向供电意味着设备可以既是电源提供者也可以是电源接收者。 4. **可逆插拔**:USB Type-C的接口设计使得插头可以在不...
- 笔记本电脑通常不配备串口,可通过USB转串口适配器实现连接。 - 常用引脚:2号引脚(RxD,接收数据)、3号引脚(TxD,发送数据)和5号引脚(GND,地线)。 ##### RS485通讯原理 - **发展背景**:RS485是为了...
此外,它还具备快速过载保护机制,单向开关设计,以及最小化的外部组件需求,使其在高密度电路板设计中占据优势。当处于禁用状态时,其静态电流(ICC)仅为1μA,展现了卓越的节能特性。 #### 二、关键特性与功能 ...