当前位置: 首页 > wzjs >正文

吴忠市利通区建设局网站最知名的网站推广公司

吴忠市利通区建设局网站,最知名的网站推广公司,iis做动态网站,wordpress 加微信号适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题。主要分为三类:类的适配器模式、对象的适配器模式、接口的适配器模式。首先,我们来看看类的适配器模式 1.1 类的适配器模式 核…

适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题。主要分为三类:类的适配器模式、对象的适配器模式、接口的适配器模式。首先,我们来看看类的适配器模式

1.1 类的适配器模式

核心思想就是:有一个Source类,拥有一个方法,待适配,目标接口时Target,通过Adapter类,将Source的功能扩展到Target里

public class Source {public void method1() {System.out.println("this is original method!");}
}
public class Adapter extends Source implements Target {@Overridepublic void method2() {System.out.println("this is the targetable method!");}
}

Adapter类继承Source类,实现Target接口,下面是测试类:

public class AdapterTest {public static void main(String[] args) {Target target = new Adapter();target.method1();target.method2();}
}

输出:

this is original method!
this is the targetable method!

这样Target接口的实现类就具有了Source类的功能

1.2 对象的适配器模式

基本思路和类的适配器模式相同,只是将Adapter类作修改,这次不继承Source类,而是持有Source类的实例,以达到解决兼容性的问题

public class Wrapper implements Target {private Source source;public Wrapper(Source source){super();this.source = source;}@Overridepublic void method2() {System.out.println("this is the targetable method!");}@Overridepublic void method1() {source.method1();}
}

public class AdapterTest {public static void main(String[] args) {Source source = new Source();Target target = new Wrapper(source);target.method1();target.method2();}
}

1.3接口的适配器模式

时我们写的一个接口中有多个抽象方法,当我们写该接口的实现类时,必须实现该接口的所有方法,这明显有时比较浪费,因为并不是所有的方法都是我们需要的,有时只需要某一些,此处为了解决这个问题,我们引入了接口的适配器模式,借助于一个抽象类,该抽象类实现了该接口,实现了所有的方法,而我们不和原始的接口打交道,只和该抽象类取得联系,所以我们写一个类,继承该抽象类,重写我们需要的方法就行

接口:

public interface Sourceable {public void method1();public void method2();
}

抽象类:

public abstract class AbstracterAdapter implements SourceInterface {@Overridepublic void method1() {}@Overridepublic void method2() {}
}

具体类:

public class SourceSub1 extends AbstracterAdapter{@Overridepublic void method1() {System.out.println("the sourceable interface's first Sub1!");}
}

public class SourceSub2 extends AbstracterAdapter{@Overridepublic void method2() {System.out.println("the sourceable interface's second Sub2!");}
}
public class Test {public static void main(String[] args) {SourceInterface sourceSub1 = new SourceSub1();SourceInterface sourceSub2 = new SourceSub2();sourceSub1.method1();sourceSub1.method2();sourceSub2.method1();sourceSub2.method2();}
}

测试输出:

the sourceable interface's first Sub1!
the sourceable interface's second Sub2!

达到了我们的效果!

 讲了这么多,总结一下三种适配器模式的应用场景:

类的适配器模式:当希望将一个类转换成满足另一个新接口的类时,可以使用类的适配器模式,创建一个新类,继承原有的类,实现新的接口即可。

对象的适配器模式:当希望将一个对象转换成满足另一个新接口的对象时,可以创建一个Wrapper类,持有原类的一个实例,在Wrapper类的方法中,调用实例的方法就行。

接口的适配器模式:当不希望实现一个接口中所有的方法时,可以创建一个抽象类Wrapper,实现所有方法,我们写别的类的时候,继承抽象类即可。

http://www.dtcms.com/wzjs/472178.html

相关文章:

  • 10m光纤做网站学技术的培训学校
  • java可以做网站开发吗做外贸网站哪家公司好
  • 如何用api做网站网络营销的概念及特点
  • 生态农庄网站建设友情链接出售平台
  • 麻豆精产三产区区别seo公司排行
  • 山东住房和城乡建设部网站seo兼职工资一般多少
  • 做个动态网站要多钱优化设计电子课本下载
  • 福州网站制作公司营销怎么做好网络推广销售
  • 公司网站建站模板seo sem关键词优化
  • 做美食介绍的网站徐州seo推广优化
  • 开源镜像网站开发千万不要学网络营销
  • 北京web网站开发培训班如何自己做一个软件
  • wordpress 页面空白百度seo什么意思
  • 做返利网站怎麼色盲测试图片
  • 青岛城乡建设局网站网络营销都有哪些形式
  • 北京网站建设价格便宜百度手机快速排名点击软件
  • html5网站建设百度手机app下载安装
  • 哈市哪里网站做的好百度关键词搜索排名帝搜软件
  • 移动网站开发工具站长工具四叶草
  • 山东网站建设推广上海疫情突然消失的原因
  • 聊城做网站厉害的公司太原网站建设方案优化
  • 程序员网站关键词推广效果
  • 做网站有高手没有公司网页设计
  • 楼书设计素材网站免费推广方法
  • 定制网站开发多少钱百度广告收费表
  • 河南住房和城乡建设局网站seo主要做什么工作内容
  • 网站建设业务的途径的体会百度指数使用指南
  • 做封面的软件ps下载网站游戏优化
  • 阿里云网站建设教程2017今日新闻快报
  • 网页设计与制作教程素材台州关键词优化平台