大家好,欢迎来到IT知识分享网。
参考:https://blog.csdn.net/weixin_/article/details/
定义:
《设计模式》一书中是这样给适配器模式定义的:将一个类的接口转换成客户希望的另外 一个接口。Adapter 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
适配器模式将一个类的接口,转化成客户期望的另一个接口,适配器让原本接口不兼容的类可以合作无间。
Projector类:表示开始使用的是VGA的接口:
package com.example.dtest.design23.adapter.adapter1; public class Projector {
public void dataLine(){
System.out.println("投影仪使用VGA接口的数据线----播放中-----"); } }
DataConversionLine类:将vgb转换为hdmi,转化器类
package com.example.dtest.design23.adapter.adapter1; public class DataConversionLine {
public void vgaToHdmi(){
System.out.println("将VGA数据传输转为HDMI"); } }
HDMIPort接口类:
package com.example.dtest.design23.adapter.adapter1; public interface HDMIPort {
void useHDMIPort(); }
需要使用HDMI的接口的类,但现在只有VGB的接口,那么就继承转换器类呀!!!
package com.example.dtest.design23.adapter.adapter1; public class LaptopComputer extends DataConversionLine implements HDMIPort{
@Override public void useHDMIPort() {
System.out.println("手提电脑使用的HDMI接口----工作中--------"); } }
测试类:
package com.example.dtest.design23.adapter.adapter1; public class Adapter1Test {
public static void main(String[] args) {
// 投影仪 Projector projector = new Projector(); projector.dataLine(); // 手提电脑 LaptopComputer laptopComputer = new LaptopComputer(); laptopComputer.vgaToHdmi();; laptopComputer.useHDMIPort(); } }
LaptopComputer02类中自己组合了转换机制!!! package com.example.dtest.design23.adapter.adapter2; import com.example.dtest.design23.adapter.adapter1.DataConversionLine; import com.example.dtest.design23.adapter.adapter1.HDMIPort; public class LaptopComputer02 implements HDMIPort {
private DataConversionLine dataConversionLine; public LaptopComputer02() {
super(); // TODO Auto-generated constructor stub } public LaptopComputer02(DataConversionLine dataConversionLine) {
super(); this.dataConversionLine = dataConversionLine; } @Override public void useHDMIPort() {
System.out.println("手提电脑使用的HDMI接口----工作中-----"); } public DataConversionLine getDataConversionLine() {
return dataConversionLine; } public void setDataConversionLine(DataConversionLine dataConversionLine) {
this.dataConversionLine = dataConversionLine; } }
适配器类:
package com.example.dtest.design23.adapter.adapter1; public class DataConversionLine {
public void vgaToHdmi(){
System.out.println("将VGA数据传输转为HDMI"); } }
测试类:
package com.example.dtest.design23.adapter.adapter2; import com.example.dtest.design23.adapter.adapter1.DataConversionLine; import com.example.dtest.design23.adapter.adapter1.Projector; public class Adpater2Test {
public static void main(String[] args) {
// 投影仪 Projector projector = new Projector(); projector.dataLine(); // 转化器 DataConversionLine dataConversionLine = new DataConversionLine(); // 手提电脑 LaptopComputer02 laptopComputer02 = new LaptopComputer02(dataConversionLine); laptopComputer02.getDataConversionLine().vgaToHdmi(); laptopComputer02.useHDMIPort(); } }
LaptopComputer02 laptopComputer02 = new LaptopComputer02(dataConversionLine);
总结:继承和组合天生具有适配的功能,也可以说继承和组合就为适配功能而生,细品!!!!
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/128269.html