对于java现有松耦合的个人看法
个人拙见:
现在流行使用注解和Xml来达到松耦合的目的,但也大量使用了反射,这造成一定的资源消耗,而且维护起来比较繁琐,个人概念中,松耦合就是即插即用,为什么需要那么麻烦去配置XML,个人觉得看似更简单了,不过使用xml的规则也越来越复杂,不过是将从java源文件更改换到了xml文件上,如果一个实现类的方法我需要修改,那我依然需要动用源文件啊,方便也只是方便在,不知道实现类的名字,所以用xml可以无视实现类名字的变化,但是这样安全性也没想的那么好吧,而且还需要读取xml文件,然后再通过反射,我用框架写一些小服务,也需要去xml配置实现这些的。
个人认为:
可以java本身为主,xml为辅的方式,来进行面向接口
首先,我可以在接口当中,定义一个静态集合(map或者list,具体看需求),泛型为接口本身,然后定义一个 接口 getImpelement(动态参数)方法;
然后在实现类中,显式的创建无参构造或者按需求构建有参构造,创建get方法,利用重载,获取相应实现类的对象,然后重要的是在实现类中使用static静态代码块,内部使用 集合.add()的方式,将new的对象传入(这个对象我个人认为可以是无参对象,毕竟有get方法,可以定义,当然因为向接口集合中添加了,所以也可以直接使用接口集合中的唯一对象),然后在接口中定义
就需要考虑如何能将这些实现类的对象传入接口集合中,个人想法就是在命名上思考,可以统一为 implement_实现名,这样我在程序入口添加一个扫描字节码全文件的方式,统一将所有实现类的文件名使用 Class.formName(),进行加载,会自动执行静态代码块,将自身对象传入每个所对应的接口,因为只是加载,不需要用获取的Class去创建对象,所以对资源消耗不大,而且省略了xml的一些繁琐配置,这样当我们需要使用接口调用实现类的方法的时候,就可以直接从接口集合里面取,当我们需要传入不同参数,也有可以直接使用接口的get实现的方法,来获取不同的实现类对象;
如果需要使用外部实现类,就可以使用xml配置一下就好了;
以上纯属个人拙见,不知道会不会有人阅读到这篇胡思乱想,个人会继续在实际开发中,使用此种方法,去验证不足之处,希望大家集思广益,共同探讨,共同进步。
对于java现有松耦合的个人看法相关推荐
- java中强耦合是什么意思_什么是oop中的松耦合和紧耦合(java)
我对java中的松散耦合和紧密耦合有一些困惑.因为我知道松散耦合意味着彼此之间的信息最少,而紧密耦合意味着依赖关系.因为我们知道松散耦合可以通过接口实现和继承实现紧密耦合. 例如: 1)A(接口) 2 ...
- java中关于高聚合与松耦合
把系统分为各个功能不同的板块,以电脑主机为例,高聚合就是指主板,cup等内的各种零件之间的紧密联系,松耦合就是指主板与cpu的连接,主板与显卡的连接,主板与电源的连接.把显卡,主板内的零件看作小号零件 ...
- java松耦合_java中关于高聚合与松耦合
把系统分为各个功能不同的板块,以电脑主机为例,高聚合就是指主板,cup等内的各种零件之间的紧密联系,松耦合就是指主板与cpu的连接,主板与显卡的连接,主板与电源的连接.把显卡,主板内的零件看作小号零件 ...
- 与应用程序松耦合的报表开发组织
在软件项目中,报表模块经历了一个和其他模块从紧耦合到松耦合的发展过程. 早期的报表,和软件项目的其他功能模块一样,都是由同样的开发工具和语言编写的.从PB.Delphi到asp.php,再到目前的C# ...
- Spring松耦合的个人理解和代码实例
Spring松耦合的个人理解和代码实例 理解Spring的松耦合概念,那么我们先来看看一个不使用Sring的实例代码 先看一下整个测试项目案例的结构 正常方式 创建一个接口,这个接口指定车辆的行驶速度 ...
- Spring松耦合的实现
HelloShiyanlou 与松耦合的实现 一.实验介绍 1.1 实验内容 本节实验将带你入门简单的 Maven 项目创建和如何实现松耦合. 1.2 实验知识点 Maven 介绍 Spring 松耦 ...
- 微服务 松耦合_超值干货:微服务架构下如何解耦,对于已经紧耦合下如何重构?...
今天准备谈下微服务架构下各个微服务间如何解耦,以及对于已经紧耦合的微服务如何进行重构.要明白实际上微服务后续出现的诸多问题往往都是一开始微服务模块划分就不合理导致,对于具体的模块划分方法和原则,我总结 ...
- Spring(5)---松耦合实例
Spring松耦合实例 面向对象的概念,是一个很好的设计来打破系统进入一个组可重用的对象.然而,当系统变大,尤其是在Java项目,庞大的对象依赖关系将一直紧密耦合引起对象难以管理或修改.在这种情况下, ...
- 松耦合式的权限控制设计,自定义权限表达式
点击上方"芋道源码",选择"设为星标" 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | ...
最新文章
- php statements,PHP PDOStatement::setAttribute讲解
- 在IE中测试调用Web Service
- html5游戏加载动画,HTML5 战场3游戏的加载指示动画
- 省市县三级连动(数据在一个表中)
- 第十一届青少年蓝桥杯国赛真题精选 - 编程题
- component是什么接口_阿里高级技术专家:整洁的应用架构“长”什么样?
- 图片和文件上传js剖析
- python的py文件打包成exe_将python项目.py文件打包成.exe文件
- JS监听DOM宽高的变化
- 从UnitedStack OS 1.0 Preview试用申请问卷调查学习OpenStack
- 【OpenGL4.0】GLSL-Flat Shading平面着色
- 关于OAuth2的几个问题
- 科普:不给手游平台源码的公司能不能选?
- Hownbsp;tonbsp;Modifynbsp;anbsp;ATInbsp;Switchablenbsp;G…
- java qq音乐接口 api,GitHub - yan123zi/qqMusicApi: qq音乐Api接口
- 【OI好题推荐 #1】洛谷-P1183 多边形的面积
- 无监督re-ranker,Improving Passage Retrieval with Zero-Shot Question Generation
- linux驱动学习二---driver
- 一文弄懂BIN、HEX、AXF、ELF文件格式的区别
- 在SQL中limit 函数的使用
热门文章
- 【MarkDown】CSDN Markdown之思维导图mindmap详解
- 运行faiss时出现faiss undefined symbol: mkl_sparse-optimize_bsr_trsm_i8
- 【Python实战】Python采集二手车数据——超详细讲解
- appium自动化测试框架系列之基类以及公共类的封装
- 利用gitlab搭建静态页面并开启https Pages服务
- 小米4拍照上传时候,上传的图片size为零
- 恭喜微微软喜当爹,Github嫁入豪门。
- 盛世昊通:汽车行业资本入局不断,行业变局需考量
- 【代理脚本】只有无尽的跳转,没有封禁的IP
- 2020-10-17 教你如何破解猫眼(美团)的加密字体stonefont