栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java中解耦测试分析

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java中解耦测试分析

【1】首先我们来了解下,什么叫做耦合

        耦合:指的是程序之间的依赖关系{包括类之间的依赖和方法间的依赖}

        例如,我们常用的new 就是一种耦合,以及一个类调用另一个类中的方法,也是耦合

【2】解耦

        解耦:就是降低程序之间的耦合关系,但是并不能消除

        在实际的开发中:我们应该做到编译器不依赖,运行期依赖

【3】解决思路

        1.使用反射来创建对象,避免使用new关键字

        2.通过读取配置文件来获取要创建的对象的全限定类名

      

         我们先创建出一个bean.properties配置文件,以后在Spring中是要用到xml的,这里是测试,所以用properties。

        

         在这里面写上,两个实现类的全限定类名。

         因为我们需要进行在类中调用实体类,把new关键字消除的操作。

         就需要实例化对象

        

          在工厂类中,我们需要先读取我们的bean.properties文件,然后用load方法读取加载

          之后就是实例化我们的实现类对象的代码

          这里最重要的一点就是Class.forName的用法,这个方法是返回一个类,然后再                              Class.newInstance创建对象,来代替创建对象时的new关键字。

          注意:forName中的字符串,必须包含我们所需要创建类的包名和类名

                     也就是我们bean.properties中写的

          这样我们就得到了我们需要的实体类对象

          我们返回到我们的service实体类中

                

          同理,我们最后的前端模拟类也可以这么使用

          注意:因为我们在工厂中getBean方法中返回的是Object类型,这个都需要强转

        

         这里大家需要知道,这个靠newInstance出来的对象,每次打印的地址值都不同,所以是多例的,如果我们想得到单例的对象,怎么办?

         既然我们调用BeanFactory的方法时,每次都是新的对象,那么我们就可以在工厂中,把对象存入到一个容器中,然后每次调用,就从容器中拿就可以了。

        

         这样我们在自定义方法中,就可以,return beans.get(name);即可

        

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/361756.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号