为什么要 用适配器模式。就是把两个完全不关联或者不相同的类纠合一起时才使用这个模式。
这个模式涉及到角色:
源角色:需要适配的角色。
目标角色:期待使用的接口。
适配器角色:把源角色转化成目标角色。这个是模式的核心。着重转化功能。
适配器模式分两种情况:
类的适配器模式和对象的适配器模式 。
首先来讲讲类的适配器模式:
如下例:
指方为圆的故事。
//方形接口
public interface Square{
//方形具有画方形的功能
public void drawSquare();
//是否是图形
public boolean isGraphical();
}
这里主要是想用目标接口。。但是又要能提供画方形功能。此时目标接口如下
//圆形接口 即目标接口
public interface Circular{
//具有画方形的功能
public void drawCircular();
//是否都是图形
public boolean isGraphical();
}
为了能使圆形接口能使用画方形功能。则适配器角色产生。适配器角色作用就是能够提供目标角色不具有的源角色功能。
接口如下
public class CircularAdator implements Circular,Square{
public void drawSquare(){
System.out.println("我是方形接口的功能 我画方形");
}
public void drawCircular(){
System.out.println("我是圆形接口的功能。我画圆形");
}
//方形和圆形都有此功能。
public boolean isGraphical(){
return true;
}
}
类适配模式。比较简单。。而且只能适合单一的类。子类和多个类都都无法重用这个适配器。如果要适配分别要针对每个子类进行适配。这样维类就会越来越臃肿。而且也不可取。
对象适配器。主要使用聚合/组合原则进行的适配。通过对上面的接口改造如下。
//被适配的接口 方形接口 拥有画方形的能力
public interface Square{
//画方形图画的能力
public void drawSquare();
//是否是图形 指的是形状
public boolean isGraphical();
}
//圆形接口,目标接口 我们需要的接口
public interface Circulare{
//拥有画圆形的能力
public void drawCirculare();
//同样是图形
public void isGraphical();
}
//具体被适配的接口的实现类。。这里也可以直接适配
public class SquareAdaptee implements Square{
//具有画方形的能力
public void drawSquare(){
System.out.println("我是方形图形噢。。")
}
public boolean isGraphical(){
return true;
}
}
//圆形适配器类,是我们的目标类,实现圆形接口,本身拥有画圆形的能力之外。同时需要提供方形的能力
public class CirculareAdaptor implements Circulare{
//组合方形接口,适配
private Square squareAdaptee;
//构造子
public CirculareAdaptor(Square squareAdaptee){
this.squareAdaptee =squareAdaptee;
}
public void drawCirculare(){
System.out.println("我具有画圆形的能力噢");
}
//是图形
public boolean isGraphical(){
return true;
}
//委托方形去画。圆形不具有画方形的功能
public void drawSquare(){
squareAdaptee.drawSquare();
}
}
针对对象适配器模式。因为是使用了组合和聚合原则。源接口(被适配的类)的子类都适用这个适配器类,不需要增加具体子类的适配器类。从而减轻了类的维护成本。
缺省适配器类。
如果源和目标接口为同一个类。又由于我们不需要源类所有方法。我们提供源类的平庸实现。后续子类继承时。我们有选择我们需要的功能方法。
例省略。
应用场景:
1,我们需要的目标的角色功能。但是源口接口没没有的
2,当源接口无法修改时。我们需要适配角色来达到我们需要的接口的目的。
发表评论
-
调停者,观察者,门面模式
2011-11-15 19:38 1208调停者(Mediator)模式 ... -
访问者模式
2011-08-26 10:06 588访问者模式 -
状态模式
2011-08-26 10:06 450状态模式 -
备忘录模式
2011-08-25 16:17 739备忘录模式又叫快照模式或者Token模式 是对象的行为模式 ... -
命令模式
2011-08-25 14:40 658命令模式核心是封装命令类(请求类),每一个命令类作单独的类,分 ... -
责任链模式
2011-08-24 21:40 637责任链模式是一种行为模式。多个处理类组成一个责任链,责任链处理 ... -
模板方法模式
2011-08-24 13:35 620这个模式相对来说也比较简单。 -
策略模式
2011-08-23 16:02 632策略模式是比较常用的一种模式.封装不算法。每一个算法封装在不同 ... -
不变模式
2011-08-23 15:42 648不变模式比较简单,一般设计成一个类或者一个继承等级结构。 不 ... -
桥梁设计模式(柄体设计模式)
2011-08-22 23:51 678桥梁设计是将抽象化和实现化分离。抽象化就是指模型的抽象化,是实 ... -
享元模式
2011-08-18 08:53 648享元模式的角色划分: 1,抽象享元角色:享元角色需要实现的公 ... -
装饰器模式(包裹模式)
2011-08-16 09:58 663装饰器模式的形象理解油漆工刷油漆。油漆工是装饰器角色,被刷者是 ... -
组合设计模式(合成模式)
2011-08-14 23:35 791组合设计模式(部分-整体设计模式) 主要角色涉及三个 抽 ...
相关推荐
适配器模式又叫变压器模式,也叫包装模式。 这里作者举得例子并没有实现把一个接口或类转换到另外一个可以使用的类,仅仅是把输入参数做了判断,这是不是适配器模式我不予置评,下面贴出我实现的适配器模式。...
1、工厂模式 2、建造模式 3、工厂方法模式 4、原始模型模式 5、单例模式 6、适配器(变压器)模式 7、桥梁模式
6、适配器(变压器)模式:把一个类的接口变换成客户端所期待的另一种接口,从 而使原本因接口原因不匹配而无法一起工作的两个类能够一起工作。适配类可以根据参 数返还一个合适的实例给客户端。 7、桥梁模式:将...
这些IC采用了专有的软跳周期(Soft Skip)模式,在跳周期模式期间渐进增加峰值电流 ,降低可听噪声的风险,从而节省更多的元器件,并简化变压器的设计和制造。这些新控制器结合跳周期和频率反走功能,在轻
准方波谐振转换器也称准谐振(QR)转换器,广泛用于电源适配器。准方波谐振的关键特征是金属氧化物半导体场效应晶体管(MOSFET)在漏极至源极电压(VDS)达到其最低值时导通,从而减小开关损耗及改善电磁干扰(EMI)信号。 ...
这些IC采用了专有的软跳周期(Soft Skip)模式,在跳周期模式期间渐进增加峰值电流 ,降低可听噪声的风险,从而节省更多的元器件,并简化变压器的设计和制造。这些新控制器结合跳周期和频率反走功能,在轻
而且,QR反激在不连续电流传导模式下工作,且在所有输出电压范围内都不能实现全软开关。此外,变压器漏感的损耗限制了实际的开关频率。当设计人员想要实现高功率密度和小适配器尺寸时,上述不足就给功能的实现带来了...
该电路所用的一种结构,能在 DC/DC 变换器处于关机模式时切断两个输出,这样就使处于关机(待机)模式时的静态电流很小。此外,无论输入电压高于或低于 5V,该电路都能提供经稳压的正5V和负 5V。因此,该电路可以由...
这些IC采用了专有的软跳周期(Soft Skip)模式,在跳周期模式期间渐进增加峰值电流 ,降低可听噪声的风险,从而节省更多的元器件,并简化变压器的设计和制造。这些新控制器结合跳周期和频率反走功能,在轻
采用NCP1342制作的QR模式 氮化镓NV6115和RM8变压器方案65W,PD快充电源,超小型电源
可广泛应用于机顶盒、DVD播放机、电源适配器等整机产品中。 内置的15ms软启动电路减小了电路启动时变压器的应力;电路的开关频率为67KHz,振荡电路产生的频率抖动,可以降低EMI;在待机模式下,电路进入打嗝模式...
一般都使用脉冲宽度调制(PWM)控制芯片来实现PWM的调制,开关控制模式相对直流工作模式有很高的工作效率,使用反激离线工作模式,提高了系统工作的安全性,非常适合应用在便携式充电设备及电源适配器,比如,手机...
一般都使用脉冲宽度调制(PWM)控制芯片来实现PWM的调制,开关控制模式相对直流工作模式有很高的工作效率,使用反激离线工作模式,提高了系统工作的安全性,非常适合应用在便携式充电设备及电源适配器,比如,手机...
OnSemi公司的NCP1337是一款结合电流模式调节器和退磁检测器的芯片,以充分确保边界线/临界传导模式在任何负载/传输线条件连同最低漏电压开关(准-谐振操作)。因为Soxyless概念,变压器铁心重置检测在内部完成,没有...
facade门面模式、proxy代理模式、adapter适配器(变压器)模式、composite合成模式、decorator装饰模式、bridge桥梁模式、flyweight享元模式 行为模式 template模板方法模式、memento备忘录模式、observer观察者模式...
Marx升压通过步进电机带动自耦变压器来实现所带来的精度低、磨损大等缺陷,本系统采用Chroma可编程交流电源对Marx进行升压较好地解决了上述问题,并利用GPIB-LAN网络适配器,基于客户机/服务器模式在LabWindows/CVI...
该板的主要重点是轻载效率,通过PFC和LLC控制器的突发模式功能以及L6699器件的自适应死区时间实现,由内部逻辑根据半桥节点转换时间进行调制,允许变压器磁化电感最大化,减少轻载运行时的初级电流。基于耗尽MOSFET...
在低输入功率水平下,高效率还可使适配器的空载功耗降至最低,增大待机模式下对系统的供电量,这一点特别适用于受到能效标准和规范约束的产品应用。 由于采用全新的多周期调制模式,使得电源在空载条件下具有出色...