-
模式的秘密---适配器模式——使用组合或继承的方式实现插座适配器 II 4、TwoPlugAdapterExtends.java(继承方式) /* * 二相转三相的插座适配器 */ public class TwoPlugAdapterExtends extends GBTwoPlug implements ThreePlugIf { @Override public void powerWithThree() { System.out.println("通过转化"); this.powerWithTwo(); } } 5、NoteBook.java(客户端) public class NoteBook { private ThreePlugIf plug; public NoteBook(ThreePlugIf plug){ this.plug = plug; } //使用插座充电 public void charge(){ plug.powerWithThree(); } public static void main(String[] args) { GBTwoPlug two = new GBTwoPlug(); //组合方式 ThreePlugIf three = new TwoPlugAdapter(two); NoteBook nb = new NoteBook(three); nb.charge(); //继承方式 three = new TwoPlugAdapterExtends(); nb = new NoteBook(three); nb.charge(); } } Ps:继承的方式来实现适配器,受到Java单继承的限制,一旦继承了适配器,就无法再继承其他类。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
模式的秘密---适配器模式——什么是适配器模式 适配器模式定义:将一个类的接口,转换成期望的另外一个借口,使得由于接口不兼容而不能一起工作的那些类可以一起工作。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
适配器作用查看全部
-
应用场景 在以下各种情况下使用适配器模式: 1.系统需要使用现有的类,而此类的接口不符合系统的需要. 2.想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作,这些源类不一定有很复杂的接口.查看全部
-
对象适配器模式 与类的适配器模式一样,对象的适配器模式把被适配的类的API转换成为目标类的API,与类的适配器模式不同的是,对象的适配器模式不是使用继承关系连接到Adaptee类,而是使用委派关系连接到Adaptee类. Target目标接口中同样只有Request()方法. Adaptee源接口中也只有SpecificRequest()方法,没有Request方法.而客户端则期待这个方法,为使客户端能够使用Adaptee类,需要提供一个包装(Wrapper)类Adapter.这个包装类包装了一个Adaptee的实例,从而此包装类能够把Adaptee的API与Target类的API衔接起来. Adapter与Adaptee是委派关系,这决定了适配器模式是对象的. 目标接口: public interface Target { //这是源类Adaptee没有的方法 public void Request(); } 源接口类: public class Adaptee{ public void SpecificRequest() { System.out.println("这是原始标准接口!(三相)"); } } 适配器类: public class Adapter implements Target{ private Adaptee adaptee; public Adapter(Adaptee adapt){ this.adaptee=adapt; } //实现Request()方法 public void Request() { adaptee.SpecificRequest(); } } 类适配器模式与对象适配器模式区别在于适配器类的行为不同. 类适配器模式的适配器类是继承源接口类,而对象适配器模式的适配器类是以委派的方式与源接口类进行关联.查看全部
-
类适配器模式:把被适配的类的API转换成为目标类的API 目标就像二相插座,源就像三相插座,适配器就是一个三相到两相的转换器. 假设Target目标接口中有Request()方法(相当于二相插座). Adaptee源接口中只有SpecificRquest()方法(相当于三相插座),没有Request()方法(即没有二相插座的插孔),而客户端则期待这个方法,为使客户端能够使用Adaptee类,提供一个中间环节,即类Adapter,把Adaptee的API与Target类的API衔接起来. Adapter与Adaptee是继承关系,这决定了这个适配器模式是类的. 目标接口: public interface Target { //这是源类Adaptee没有的方法 public void Request(); } 上面给出的是目标角色的源代码,这个角色是以一个JAVA接口的形式实现的.可以看出这个接口声明了Request()方法,而源角色Adaptee是一个具体类,它有一个SpecificRequest()方法,但是没有Request()方法. 源接口类: public class Adaptee{ public void SpecificRequest() { System.out.println("这是原始标准接口!(三相)"); } } 适配器类: public class Adapter extends Adaptee implements Target { //实现接口中的Request()方法,方法内部调用继承Adaptee中的SpecificRequest()方法. public void Request() { super.SpecificRequest(); } } 那么适配器Adapter就把被适配的类的API转换成为目标类的API.查看全部
-
适配器模式 生活中的适配器定义:适配器就是一个接口转换器,如电源适配器、三角架基座转接部件、USB与串口的转接设备等. 适配器模式定义:适配器模式将一个类的接口,转换成客户期望的另外一个接口. 使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作. 适配器模式由4个角色构成: 1.客户端(Client) 2.目标接口(Target) 3.源接口(Adaptee) 4.适配器(Adapter) 适配器作用就是将原本接口转换成用户需要的目标接口.查看全部
-
适配器模式查看全部
-
鼓励鼓励查看全部
-
适配器的好处查看全部
-
适配器模式并不是一成不变的写法。 此图中,左边的抽象类就实现了客户端的目标接口,我们的适配器再去集成这个抽象类。 适配器还可以再去实现现有的Adaptee接口查看全部
-
适配器的分类。查看全部
-
Adapter适配器来实现目标接口,并把现有的Adaptee放入实现类中,把此实现类供客户端使用。查看全部
-
适配器模式中有4个角色:客户端、目标接口、适配器、被适配类。 客户端想要的接口是目标接口的样子; 被适配器类提供的是接口的另一种样子; 适配器在中间起到一个连接两者的作用,把被适配器类改造为目标接口的样子。查看全部
-
适配器模式为了解决不兼容和不匹配的问题。查看全部
举报
0/150
提交
取消