适配器模式和迪迦奥特曼不得不说的故事
1、类适配器模式
早上刚来,看到弟弟在喝水,我突然感觉不太好了,说道:今天天气有点阴沉,估计又要下雨了,到处湿漉漉的,就连刚学的设计模式也感觉是注水了!
弟弟撇了我一眼,道:此话怎讲?
我说:你可知晓类适配器模式?想来你是知道的,就是通过类之间的关系构建的适配器;
它是由三部分组成:现有资源,适配的方法接口,目标资源。现有资源以目标资源作为父类,通过实现接口的方法,调用父类的属性或者方法。从而实现现有资源做出目标资源的操作。给你看个图图!
看图说话:从关系上来看,大古继承了迪迦,大古拥有了变身器,大古打不动怪兽,迪迦可以打怪兽看。大古想要打怪兽,需要通过实现打开变身器,才能调用迪迦的各种能力,实现打怪兽。
/*** 迪迦奥特曼** @author czy* @date 2021/6/18*/
public class UltramanTiga {public void action(){System.out.println("迪迦使用宇宙射线击打宇宙小金刚");System.out.println("迪迦对怪兽造成了100点伤害");}
}/*** 大古* 大古想要变身迪迦,需要一个变身器** @author czy* @date 2021/6/18*/
public class BigGu extends UltramanTiga implements ShapeShifter{@Overridepublic void becomeBigPerson() {this.action();}
}/*** 变身器** @author czy* @date 2021/6/18*/
public interface ShapeShifter {/*** 变成巨人*/void becomeBigPerson();
}/*** 快来看奥特曼变身打怪兽** @author czy* @date 2021/6/18*/
public class Test {public static void main(String[] args) {//我有一个大古,我想打怪兽BigGu bigGu = new BigGu();//我想要个迪迦bigGu.becomeBigPerson();}
}
弟弟:继承耦合有点高啊!在实际生产中应该不适用吧。
我:没错继承父类实现适配耦合性高
我:没错,明明继承父类,调用父类方法就行了,这种模式还要通过实现接口,通过实现接口方法中调用父类接口,感觉多此一举,完全是在水经验,故此,我说它是在灌水!
2、对象适配模式
弟弟:那有没有好的解决方法呢?
我:将继承改成组合就行了,每个人身体中都有迪迦,需要通过希望之光激发他。这就是对象适配模式。卡卡兔!!!
/*** 迪迦奥特曼终极版** @author czy* @date 2021/6/18*/
public class UltramanTiga {public void action(){System.out.println("迪迦使用宇宙射线击打宇宙小金刚");System.out.println("迪迦对怪兽造成了100点伤害");}
}/*** 每个人* 每个人的信念心中都有迪迦,通过希望之光操作迪迦打怪兽* @author czy* @date 2021/6/21*/
public class EveryBody implements Light{private UltramanTiga ultramanTiga;public EveryBody(UltramanTiga ultramanTiga) {this.ultramanTiga = ultramanTiga;}@Overridepublic void becomeBigPerson() {ultramanTiga.action();}
}/*** 希望之光** 适配接口** @author czy* @date 2021/6/21*/
public interface Light {/*** 变成巨人*/void becomeBigPerson();
}/*** 每个人都是迪迦** @author czy* @date 2021/6/21*/
public class Test {public static void main(String[] args) {EveryBody body = new EveryBody(new UltramanTiga());body.becomeBigPerson();}
}
你看看多个接口在这增加代码量!是不是水!
弟弟:确实水!明明能直接不用接口实现的!
我心中窃笑,表面稳如老狗:这就是面向接口编程啊骚年!七大原则忘了吗?依赖倒置原则啊,面向接口而非面向实现,所以是我在灌水哦!
适配器模式和迪迦奥特曼不得不说的故事相关推荐
- (九)模板方法模式详解(包含与类加载器不得不说的故事)
作者:zuoxiaolong8810(左潇龙),转载请注明出处,特别说明:本博文来自博主原博客,为保证新博客中博文的完整性,特复制到此留存,如需转载请注明新博客地址即可. 模板方法模式,这是一个在许多 ...
- 我和freelancer不得不说的故事5 --- 心理落差
我和freelancer不得不说的故事5 --- 心理落差 我下海之前所在的外企,是一家顶级知名IT企业,其SAP咨询服务业务规模和影响都很大,是SAP咨询界五大咨询公司之一.我从07年加入这家公司, ...
- 搜索引擎新架构:与SQL不得不说的故事
简介:本话题将围绕阿里巴巴搜索引擎HA3架构,和大家详细阐述搜索引擎在面对架构深度学习和数据规模的挑战时,如何以数据库SQL的执行方式来应对解决. 特邀嘉宾:罗涛--阿里巴巴集团资深技术专家 视频地址 ...
- 云图说|ROMA演进史:一个ROMA与应用之间不得不说的故事
阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要: 华为云ROMA源 ...
- 如此可爱,焉能不爱?—我与在线作业不得不说的故事
夏日炎炎,每当看到孩子埋头抄写作业题目而淌下汗珠时,我就在想:有没有好的办法替孩子去抄作业,让孩子省下时间干点别的?每当别的父母都在领着孩子去公园玩耍而我还在堆积如山的案头批改作业时,我就在想:有没有 ...
- 《数据赋能IT团队技术管理实战》与老杨不得不说的故事
来了,坐. 接下来是<数据赋能IT团队技术管理实战>这本书与老杨不得不说的故事,请各位观众,有钱的捧个钱场,有人的捧个人场呗,走着. 书:"大家好,我是<数据赋能IT团队技 ...
- UESTC-2016dp专题 F 柱爷与三叉戟不得不说的故事
柱爷与三叉戟不得不说的故事 Time Limit: 500/500MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) 题目链接 ...
- CDOJ 1355 柱爷与三叉戟不得不说的故事(枚举子集状压dp)
柱爷与三叉戟不得不说的故事 Time Limit: 500/500MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Subm ...
- 绿之韵背后不得不说的故事
近日,直销企业2019保护消费者权益3·15座谈会在北京召开.本次会议,国家市场监管总局价格监督检查与反不正当竞争局(规范直销与打击传销办公室).网络交易监督管理司.特殊食品安全监督管理司.中国消费者 ...
最新文章
- 三十六、贪心算法--集合覆盖问题
- JS的document.all函数使用 示例
- 编程方法学18:多维数组收尾
- php 相册分类,这款不需要网络就可以智能识别分类照片,让你的相册不再混乱...
- java tempfile read_Java 文件操作
- 解决php连接mysql数据库中文乱码问题
- 使用CSS实现无滚动条滚动
- 实现机器学习的循序渐进指南VII——Blending Stacking
- 软件测试:测试一个网站
- Settings点击Location(位置)后右上角的开关button不会消失
- 论文精读:车尧-《社会网络视角下战略性新兴产业的专利情报研究》
- linux和嵌入式开发区别,嵌入式开发与普通编程开发的区别
- 《神经网络与深度学习》-网络优化和正则化
- 《Openwrt开发》第四章:newifi3 实现内网穿透(n2n)
- 帷幕的帷是什么意思_古时纺织什么样子?穿越时空看古代纺织发展
- Element组件框架
- 手撸架构,MyBatis 面试42问
- cent OS 更换源
- 美国各州边界矢量划分图
- android 陀螺仪简单的使用
热门文章
- Linux操作命令(三)
- 花了个把小时,终于把vs2015 profession版卸载了(亲测)
- 寻找失踪儿子的母亲,毒贩,与无人机的真实故事
- java ucs2解码,短信中的的 UCS2的编码与解码步骤(java)
- Mac安装docker(轻松解决安装)
- 判断 ttf 字体文件是否包含某个字
- 实验室高剪切搅拌机行业调研报告 - 市场现状分析与发展前景预测
- MetaRim这个项目怎么样?机甲激战为何称为链游崛起之星
- 问题 C: 1.01 字符串拼接 编写程序实现接收用户输入的两个字符串,将它们组合后输出。
- python课程的中期报告范文_课题研究中期总结报告范文