浅谈JAVA适配器模式
最近辞职在家,有空写写博客。当然本人也会时不时的发疯在开头写一些有的没的,别介意。
当把最爱的那个人放手时,所有的东西也就释怀了。
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适配器模式相关推荐
- java什么是适配器类?作用是什么?_浅谈Java适配器模式
假期刚结束不久,也没什么好写的,今天就水下文章,讲讲设计模式对开发时的影响,做开发到现在,感觉设计模式对开发的影响还是挺大的. 这次就简单谈谈适配器模式.可能适配器模式感觉比较鸡肋,但是用到的地方还挺 ...
- java 中的单元测试_浅谈Java 中的单元测试
单元测试编写 Junit 单元测试框架 对于Java语言而言,其单元测试框架,有Junit和TestNG这两种, 下面是一个典型的JUnit测试类的结构 package com.example.dem ...
- java的byte php_java_浅谈java的byte数组的不同写法,(由于篇幅原因阐述的不够详 - phpStudy...
浅谈java的byte数组的不同写法 (由于篇幅原因阐述的不够详细科学,不喜勿喷). 经常看到java中对byte数组的不同定义,粗略整理的一下: 一个字节(byte)=8位(bit),"b ...
- 浅谈 Java Printing
浅谈 Java Printing 其实怎么说呢?在写这篇博文之前,我对java printing 可以说是一无所知的.以至于我在敲文字时, 基本上是看着api文档翻译过来的.这虽然看起来非常的吃力, ...
- java接口与类相同不同_浅谈java的接口和C++虚类的相同和不同之处
C++虚类相当于java中的抽象类,与接口的不同之处是: 1.一个子类只能继承一个抽象类(虚类),但能实现多个接口 2.一个抽象类可以有构造方法,接口没有构造方法 3.一个抽象类中的方法不一定是抽象方 ...
- java对象头_浅谈java对象结构 对象头 Markword
概述 对象实例由对象头.实例数据组成,其中对象头包括markword和类型指针,如果是数组,还包括数组长度; | 类型 | 32位JVM | 64位JVM| | ------ ---- | ----- ...
- java执行jar中的main_浅谈java 执行jar包中的main方法
浅谈java 执行jar包中的main方法 通过 OneJar 或 Maven 打包后 jar 文件,用命令: java -jar ****.jar 执行后总是运行指定的主方法,如果 jar 中有多个 ...
- 浅谈Java中的Set、List、Map的区别
就学习经验,浅谈Java中的Set,List,Map的区别,对JAVA的集合的理解是想对于数组: 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),JAVA集合可以存储和操 ...
- 浅谈Java网络编程之Socket (2)
<浅谈Java网络编程之Socket (1)>中我们已经和大家说到客户端的网络编程,下面和大家分享的是服务器的实现代码. import java.net.*; import java.io ...
最新文章
- 二叉树的高度和节点数
- 构建可扩展的有状态服务
- Linux 安装 配置 Maven
- tomcat linux环境变量,linux系统为什么需要配置tomcat环境变量
- raft协议 MySQL 切换_Raft 协议实战系列(二)—— 选主
- new、delete与malloc、free的详解
- [转]Spinner的常用技巧
- autotools工具介绍
- php+ci+db+debug,[PHP] Web Framework : CodeIgniter MySQL Database 使用教學
- 正点原子STM32串口通讯实验详解
- ​Win10磁盘管理​
- 《从0到1 开启商业与未来的秘密》阅读心得
- 网课查题微信公众号如何搭建步骤
- CS224N 2019年课程第一次作业复现
- 中国最大的“隐形首富”,掌舵中国最大汽车集团,身价高达760亿
- [DP] 【UNR #2】积劳成疾
- python经济学函数_用python学习中级微观经济学【Slutsky Equation篇】
- java小项目之:植物大战僵尸,这个僵尸不太冷!内附素材源码
- LVGL 8.2.0 Stacked area chart
- 牛客网-Verilog篇
热门文章
- 解决“libboost_regex-vc120-mt-gd-1_59.lib“链接失败问题
- 关于Tesseract OCR 中文训练识别小试(java调用Tess4j)
- Linux性能优化-内存的swap
- ai人工智能在手机的应用_何时更重要地在产品中利用人工智能
- fedora24安装xmind7
- Office 2010 正式版相关资源
- 笔记-备份还原QCN问题答疑,9008救砖刷机包手动制作
- 如何成为一名专业的云渗透测试工程师
- 优秀的简历模版(给你们准备好了)
- cmd批处理,webStrom/phpStrom/.....IDE工具编译