java 完全解耦_java-完全解耦
完全解耦:降低代码的限制性,是同一代码能够用到更多的程序中
1 packageinterfaces.interfaceprocessor;2 import staticnet.mindview.util.Print.print;3
4 interfaceProcessor {5 String name();6 Object process(Object input);7 }8 public classApply{9 public static voidprocess(Processor p, Object s) {10 print("Using Processor "+p.name());11 print(p.process(s));12 }13 }
上述方法代码Apply.process()打印出进程的名字和进程的过程。只要符合此要求的都可以利用这个代码
1 packageinterfaces.interfaceprocessor;2 import static net.mindview.util.Print.*;3
4 public abstract class StringProcessor implementsProcessor {5 publicString name() {6 returngetClass().getSimpleName();7 }8 public abstractString process(Object input);9 public static String s = "if she weights the same as duck";10 public static voidmain(String[] args) {11 Apply.process(newUpcase(), s);12 }13 }14 class Upcase extendsStringProcessor{15 publicString process(Object input) {16 return((String)input).toUpperCase();17 }18 }
在利用Apply.process()方法时,需要一个适配器方法,本例中StringProcessor为字符串适配器,是接口Processor的实现
由于Apply.process()方法接收的参数为Proessor类型,因此必须要一个Processor接口的实现,我们把它称作适配器,该适配器也是接口Processor的实现,这样该适配器的类型也是Processor
这样就可以把该适配器的内容传到Apply.process()方法中(Apply.process(new Upacase(), s))
packageinterfaces.interfaceprocessor;classChacaterPairSwapper{publicString swap(String s) {
StringBuilder sb= newStringBuilder(s);for(int i=0; i
sb.setCharAt(i, c2);
sb.setCharAt(i+1,c1);
}returnsb.toString();
}
}class SwapAdapator implementsProcessor{
ChacaterPairSwapper cps= newChacaterPairSwapper();publicString name() {return ChacaterPairSwapper.class.getSimpleName();
}publicObject process(Object input) {returncps.swap((String)input);
}
}public classE11_Swap {public static voidmain(String[] args) {
Apply.process(new SwapAdapator(), "1234");
}
}
本例也是利用了Apply.process()方法,首先写一个交换一对字符的方法,再写了一个此方法的适配器,使其适配Apply.process()方法
这就是完全解耦,通过适配器,使得更多的代码能够用到同一方法
java 完全解耦_java-完全解耦相关推荐
- 用java的io做一个代码计数器,如何制作Java页面计数器_java
大庆采油六厂采油工艺研究所 王兵 王波 常常逛WWW的人,一定对许多起始页上的计数器感兴趣.每当你光临某个站点的起始页时,它的计数器就很亲切地告诉你,从某年某月某日开始,你是第几位光临的人.你可能也想 ...
- 解耦控制matlab,解耦控制所谓解耦控制系统.ppt
解耦控制所谓解耦控制系统 典型问题- 跟踪与解耦 跟踪问题 问题描述 其中w为干扰向量,F为已知的干扰分布矩阵.许多工程问题 中希望受控系统实现以下任务:对于给定的某一个连续信号 yr(t),控制系统 ...
- 【源码+图片素材+详细教程】Java游戏开发_Java开发经典游戏飞翔的小鸟_飞扬的小鸟_Java游戏项目Flappy Bird像素鸟游戏_Java课程设计项目
课程目标: 1.通过本课程的学习巩固Java的相关基础知识,例如循环判断,数组和集合的使用,对象的继承,接口的实现,窗口的创建,事件监听,图形绘制. 2.完成小鸟的移动,管道自动生成.碰撞死亡,计分系 ...
- 改进YOLOv5 | 头部解耦 | 将YOLOX解耦头添加到YOLOv5 | 涨点杀器
改进YOLOv5 | 头部解耦 | 将YOLOX解耦头添加到YOLOv5 论文地址:https://arxiv.org/abs/2107.08430 文章目录 改进YOLOv5 | 头部解耦 | 将Y ...
- 【源码+教程】Java桌球游戏_Java初级项目_Java练手项目_Java项目实战_Java游戏开发
今天分享的Java开源游戏项目是桌球游戏,初学者也可以用来练习喔~课程详细讲解了一个桌球游戏的编写思路和流程,即使你刚学Java没多久,也可以跟随该教程视频完成属于你自己的桌球游戏!同时,还可以加深和 ...
- 【源码+项目部署】Java课程设计项目_Java人力资源管理系统
对就业和毕业都有帮助的Java实战项目来咯--人力资源管理系统! 人力资源管理系统 |Java项目2小时上手编写_源码+数据库拿走不谢!Java实战项目_Java开发https://www.bilib ...
- java 注解开发 解耦_Java提升七:注解
1.为何要使用注解? 在各种框架中,经常使用XML文件作为配置文件,从而实现框架中程序编写的解耦.但是随着开发的内容越来越复杂,对于框架中的所有对象进行XML配置将会使配置文件的维护成本急剧增加. 注 ...
- java完全解耦_java-完全解耦 - osc_bc7dotjc的个人空间 - OSCHINA - 中文开源技术交流社区...
完全解耦:降低代码的限制性,是同一代码能够用到更多的程序中 1 packageinterfaces.interfaceprocessor;2 import staticnet.mindview.uti ...
- java完全解耦_java-完全解耦
完全解耦:降低代码的限制性,是同一代码能够用到更多的程序中 1 packageinterfaces.interfaceprocessor;2 import staticnet.mindview.uti ...
最新文章
- python爬虫实验报告_python爬虫实验
- (转)线段树的区间更新
- 如何区分ABS和PVC光纤槽道?
- 公文字体字号标准2020_零秒处理公文格式的三个要点
- php函数库快速记忆法_PHP速成大法
- python做的游戏可以导出吗_Python for RenderDoc批量导出模型和贴图
- php生成链接列表,根据URL链接和抛文本生成链接a标签的PHP函数
- Python数模笔记-StatsModels 统计回归(1)简介
- Java volatile关键字详解
- Skip level 1 on 1
- visual studio 删除附加项
- 处理 TXT 文本技巧
- geojson 河流_openlayers之点,线,面(以城市,河流,省份为例,分别对应点线面)...
- 桥连模式,模板模式的改进
- 输出10000以内的质数C语言
- Multi-Task Feature Learning for Knowledge Graph Enhanced Recommendation
- 从深圳地铁看-------以损害乘客利益为目标的营运方式
- 支持U盘数据、误删文件、硬盘数据 、回收站数据恢复的软件
- Siege 压力测试
- 锌掺杂的普鲁士蓝纳米颗粒|微/纳米多孔普鲁士蓝/金复合物|氧化石墨烯/普鲁士蓝/氨基苝四甲酸复合物(GO/PB/PTC-NH2)
热门文章
- 实验二——软件项目管理的直观感受
- python工程师年薪多少万_Python工程师工资待遇一般是多少
- VMware虚拟机中使用usb设备
- Java Map集合的详解
- 7. R语言【独立性检验】:卡方独立性检验、Fisher精确检验 、Cochran-Mantel-Haenszel检验
- Android#studio@快捷键
- mysql关闭空闲连接_终止空闲的mysql连接
- 转载 usb_alloc_coherent 和 usb_free_coherent
- JAVA面试解析(有赞一面)
- 滑环在机电行业的应用