最近辞职在家,有空写写博客。当然本人也会时不时的发疯在开头写一些有的没的,别介意。

当把最爱的那个人放手时,所有的东西也就释怀了。

JAVA适配器的由来:基于类只能继承一个父类、却可以实现多个接口的限制产生的一种设计者模式

是不是觉得很高大上,设计者模式耶

出现的(也就是会使用到的)场景: 当当前类不存在某个实现的方法A却又必须要用到该方法A的时候

这个时可能就会有人说,直接在类里面写一个方法不就好了吗,可是你有没有想过方法A 再别的类也要用到呢,难道在别的类又重写一遍?    这不符合程序员的写法啊。于是适配器模式这一说法就诞生了

Java的适配器模式主要有两种

类适配

对象适配

在说适配之前需要了解一些表示性的类,也就是演示时用到的类,这些类的命名个人可以根据实际情况进行命名

Targe     接口目标类(该类是以接口的形式进行创建的)

Adapee  适配类

Adapter  适配器

类适配

class interface Targe {

void superVoid();//方法A

}

class Adapee {

public void void1();

}

class ConstemAdapee  implements Targe{

void superVoid(){//该方法是实现目标接口类的

};/

}

class MyAdapter extends Adapee implements Targe{

void superVoid(){

};//方法A

}

//这里是简化了测试执行实现的方法

class main(){

Adapee  adapee= new Adapee();

adapee.void1();//执行已存在的方法

Targe targe = new MyAdapter();

targe.superVoid();//执行方法A

}

对象适配

就是将Adapee以对象的形式传入MyAdaper,而不是MyAdaper去继承

class MyAdapter implements Targe{

Adapee mAdapee;

public MyAdapter(Adapee adapee){

this.mAdapee = adapee;

}

public void void1(){//调用该对象进行方法调用即可

mAdapee.void1();

}

public  void superVoid(){

};//方法A

}

//这里是简化了测试执行实现的方法

class main(){

Adapee  adapee= new Adapee();

adapee.void1();//执行已存在的方法

MyAdapter adapter= new MyAdapter(new Adapee());

}

浅谈JAVA适配器模式相关推荐

  1. java什么是适配器类?作用是什么?_浅谈Java适配器模式

    假期刚结束不久,也没什么好写的,今天就水下文章,讲讲设计模式对开发时的影响,做开发到现在,感觉设计模式对开发的影响还是挺大的. 这次就简单谈谈适配器模式.可能适配器模式感觉比较鸡肋,但是用到的地方还挺 ...

  2. java 中的单元测试_浅谈Java 中的单元测试

    单元测试编写 Junit 单元测试框架 对于Java语言而言,其单元测试框架,有Junit和TestNG这两种, 下面是一个典型的JUnit测试类的结构 package com.example.dem ...

  3. java的byte php_java_浅谈java的byte数组的不同写法,(由于篇幅原因阐述的不够详 - phpStudy...

    浅谈java的byte数组的不同写法 (由于篇幅原因阐述的不够详细科学,不喜勿喷). 经常看到java中对byte数组的不同定义,粗略整理的一下: 一个字节(byte)=8位(bit),"b ...

  4. 浅谈 Java Printing

    浅谈 Java  Printing 其实怎么说呢?在写这篇博文之前,我对java printing 可以说是一无所知的.以至于我在敲文字时, 基本上是看着api文档翻译过来的.这虽然看起来非常的吃力, ...

  5. java接口与类相同不同_浅谈java的接口和C++虚类的相同和不同之处

    C++虚类相当于java中的抽象类,与接口的不同之处是: 1.一个子类只能继承一个抽象类(虚类),但能实现多个接口 2.一个抽象类可以有构造方法,接口没有构造方法 3.一个抽象类中的方法不一定是抽象方 ...

  6. java对象头_浅谈java对象结构 对象头 Markword

    概述 对象实例由对象头.实例数据组成,其中对象头包括markword和类型指针,如果是数组,还包括数组长度; | 类型 | 32位JVM | 64位JVM| | ------ ---- | ----- ...

  7. java执行jar中的main_浅谈java 执行jar包中的main方法

    浅谈java 执行jar包中的main方法 通过 OneJar 或 Maven 打包后 jar 文件,用命令: java -jar ****.jar 执行后总是运行指定的主方法,如果 jar 中有多个 ...

  8. 浅谈Java中的Set、List、Map的区别

    就学习经验,浅谈Java中的Set,List,Map的区别,对JAVA的集合的理解是想对于数组: 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),JAVA集合可以存储和操 ...

  9. 浅谈Java网络编程之Socket (2)

    <浅谈Java网络编程之Socket (1)>中我们已经和大家说到客户端的网络编程,下面和大家分享的是服务器的实现代码. import java.net.*; import java.io ...

最新文章

  1. 二叉树的高度和节点数
  2. 构建可扩展的有状态服务
  3. Linux 安装 配置 Maven
  4. tomcat linux环境变量,linux系统为什么需要配置tomcat环境变量
  5. raft协议 MySQL 切换_Raft 协议实战系列(二)—— 选主
  6. new、delete与malloc、free的详解
  7. [转]Spinner的常用技巧
  8. autotools工具介绍
  9. php+ci+db+debug,[PHP] Web Framework : CodeIgniter MySQL Database 使用教學
  10. 正点原子STM32串口通讯实验详解
  11. ​Win10磁盘管理​
  12. 《从0到1 开启商业与未来的秘密》阅读心得
  13. 网课查题微信公众号如何搭建步骤
  14. CS224N 2019年课程第一次作业复现
  15. 中国最大的“隐形首富”,掌舵中国最大汽车集团,身价高达760亿
  16. [DP] 【UNR #2】积劳成疾
  17. python经济学函数_用python学习中级微观经济学【Slutsky Equation篇】
  18. java小项目之:植物大战僵尸,这个僵尸不太冷!内附素材源码
  19. LVGL 8.2.0 Stacked area chart
  20. 牛客网-Verilog篇

热门文章

  1. 解决“libboost_regex-vc120-mt-gd-1_59.lib“链接失败问题
  2. 关于Tesseract OCR 中文训练识别小试(java调用Tess4j)
  3. Linux性能优化-内存的swap
  4. ai人工智能在手机的应用_何时更重要地在产品中利用人工智能
  5. fedora24安装xmind7
  6. Office 2010 正式版相关资源
  7. 笔记-备份还原QCN问题答疑,9008救砖刷机包手动制作
  8. 如何成为一名专业的云渗透测试工程师
  9. 优秀的简历模版(给你们准备好了)
  10. cmd批处理,webStrom/phpStrom/.....IDE工具编译