浅谈Java程序中对象解耦的方式

来源 :科学导报·科学工程与电力 | 被引量 : 0次 | 上传用户:chnool
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘  要】对象之间的耦合度就是对象之间的依赖性。对象之间的耦合度越高,表明对象独立性越差,维护成本就越高。因此在面向对象的软件开发中应尽量降低对象的耦合度,即解耦。在Java中可以使用接口、工厂模式、Spring框架等来降低对象间的耦合度。
  【关键词】耦合;解耦;工厂模式;Spring框架
  一、Java对象的耦合性
  对象的耦合性即对象的依赖性。在一个对象的工作过程中,需要使用另一个对象,则称之为依赖另一个对象。使用传统的new关键字创建对象会造成对象之间较高的依赖性。例如:
  public class UserJDBCDao{
  public void login(){……}
  }
  public class UserLoginServlet{
  public UserJDBCDao  userDao=new UserJDBCDao();
  public void doPost(){
  userDao.login();
  }
  }
  在以上代碼中,UserLoginServlet依赖于UserJDBCDao,如果UserJDBCDao使用的技术需要更换,则可能创建新的UserMyBatisDao来替换原有的UserJDBCDao,则以上代码中UserJDBCDao就需要被替换为UserMyBatisDao。如果项目中有多个Servlet组件都使用了UserJDBCDao,则需要替换多次需要调整的代码可能比较多,通常称之为“耦合度太高”。
  二、使用接口解耦
  为了降低以上程序的耦合度,可以使用接口技术。即创建如下接口:
  public interface UserDao{
  void login();
  }
  然后,使得UserJDBCDao和UserMyBatisDao两个类都实现以上接口,则后续需要使用Dao对象时,可以声明为:
  public userDao=new UserJDBCDao();
  则后续需要替换时,该对象的声明语句不用调整,只替换等号右侧构造方法名字即可,一定程度上降低了对象间的耦合度。
  三、使用工厂模式解耦
  可以使用设计模式中的工厂模式降低耦合度。可以创建如下的工厂类:
  public class UserDaoFactory{
  public static UserDao newInstance(){
  return new UserJDBCDao();
  }
  }
  则此前的代码可以进一步调整为:
  public UserDao userDao=UserDaoFactory.newInstance();
  以上代码中根本就没有出现某个实现类的名称,如果需要替换实现类,以上代码根本就不需要调整。需要调整的只有工厂类中的方法的返回值,而工厂类的修改只需要一次即可。可以称之为“UserLoginServlet不依赖于UserJdbcDao或UserMyBatisDao”,也就解除了三者之间的耦合。
  四、使用Spring框架解耦
  可以将Spring框架理解为一个大型工厂,专门用于创建和管理项目中所需要的类的对象。当需要使用某个对象时,从Spring框架中获取即可。使用Spring的关键步骤有三步:
  (一)导包
  在pom.xml文件在pom.xml中添加org.springframework的spring-webmvc依赖进行导包。代码如下:
  <dependency>
  <groupId>org.springframeword</groupId>
  <artifactId>spring-webmvc</artifactId>
  <version>4.3.8.RELEASE</version>
  </dependency>
  (二)配置Spring
  假设需要通过Spring创建Date类的对象,则在Spring配置文件(默认文件名是applicationContext.xml)中添加如下配置:
  <bean id="date" class="java.util.Date"></bean>
  其中:
  1.bean元素:使用该元素描述需要Spring容器管理的对象。
  2.id属性:给被管理的对象起个名字,后续可使用getBean("id值")获取该对象。
  3.class属性:被管理对象的完整类名。
  (三)通过Spring获取对象
  1.加载Spring配置文件,获得Spring容器
  ClassPathXmlApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
  2.从spring容器中获取对象
  Date date=(Date)ac.getBean("date");
  “高内聚、低耦合”是每个程序员追求的目标,随着编程技术的发展,必将有更多更好的方法来降低程序耦合性,程序解耦方法的研究还需要不断深入。
  参考文献:
  [1]肖睿,肖静,董宁.SSM轻量级框架应用实战[M].北京:人民邮电出版社,2018.
  [2]CSDN博客.程序的耦合和解耦思路 [EB/OL].https://blog.csdn.net/qq_40867650/article/details/102825262,2019-10-30.
  作者简介:
  刘翠霞,女,中共党员,信息学院软件教研室主任,高级工程师,工程硕士。研究方向:高职教育,软件开发。在研课题《“互联网+”背景下高职课堂革命的探究与实践》。
  (作者单位:石家庄财经职业学院)
其他文献
摘要:本文设计一款基于OpenCV图像识别的智能装配搬运机器人。由安装OpenCV库的树莓派进行图像处理,通过串口控制Arduino单片机进行运动控制。智能装配搬运机器人由五自由度机械手臂、桁架型底盘和辐板式车轮组成。控制系统由循迹模块Arduino单片机最小系统、超声波测距及显示,电机驱动模块组成,各个模块相互配合,能完成智能物流车的自动循迹,机械臂搬取等动作。  关键词:智能装配;OpenCV
期刊
摘要:如今手机已经成为用户访问媒体的重要入口,智能移动终端技术和无线通信技术也在不断地发展,因此广播电视业务受到了挑战。目前已经可以利用5G技术实现广播电视到手机的跨越,而广播电视也正在制定广播标准,为受众提供大范围的电视服务。下面本文就对5G移动广播电视的方案进行探讨。  关键词:5G移动;广播电视;方案探讨  引言  一个社会需要主流思想文化和价值观来进行引导。而人民也需要丰富多彩的文化娱乐活
期刊
【摘 要】根据美国分布式发电改革的研究,了解我国电改试点通知中分布式发电市场三大交易模式的基本内容并拟以基于PDCA循环理论对交易机制进行补充。重点阐述什么是分布式发电市场化交易模式,中国和美国之间分布式发电交易模式的异同,影响中国分布式发电市场化交易模式的原因以及提出的优化建议。对中国分布式发电市场化交易模式进行优化和改善,从而加快中国分布式发电市场化交易的进程。  【关键词】 美国电力改革;电
期刊
【摘 要】做好用电检查工作,可以有效地提高电力企业的工作效率和质量,从根本上实现节省能源的目的。就我国目前的电力企业现状来说,存在着以下的几点问题。首先是电力供应监管机制不健全,这极大地影响了电力供应的效率和质量。唯有不断管理机制,才能提高电力企业的供电质量。其次是部分地区的电力供应设备老旧,供电能力不足,无法满足当地人民和企业的用电需要。因此及时更新电力设备是必要的。电力企业用电检查人员的综合素
期刊
摘要:配电自动化技术是借助于电力自动化技术、信息技术以及自动控制技术等发展起来的现代电力系统控制技术。配电自动化技术借助于“软件功能”代替“设备功能”以及“人力管理”,借助于信息技术的高效性和互联性,从而使得配电网的运行管理更加规范化和高效性,在提高配电网运行效率的同时增强配电网运行的安全性与可靠性。本文将在分析配电自动化技术特点的基础上对其在配电网运行管理中的应用进行分析阐述。  关键词:配电自
期刊
摘要:随着电力通信网的不断发展,行业中存在的问题也随之呈现出来,只有采取必要的技术手段对其进行调整才能够有效地增加电力生产的能源效益,同时提高电力通信网的安全水平,减小由于电力风险而带来的损失。严格对电力通信网可能以及存在的风险进行掌控与分析才能使得通信网可以正常运作,同时保障电力通信网的高速发展,最终为行业带来整体利益,并对电力通信网产业的可持续发展奠定更加坚实的保障。  关键词:电力通信网;风
期刊
【摘 要】随着我国的快速发展,以及科学技术的不断提升,各种各样的科学技术已经应用到与我们生活息息相关的各行各业中。随着网络技术的发展,远程测控技术也得到了广泛使用。而软件的远程测控技术的使用,是要建立在科学仪器软件的远程操作使用中。同时在对科学仪器软件进行远程操作中,要根据具体工作的需要进行图像的截取,信息获取,数据传输,数据分析,软件测量等技术的操作。那么如何提高科学仪器软件在远程测控技术中的应
期刊
【摘 要】在生产中除盐水箱出水电导率升高经常发生,针对这种现象通过计算和试验,排除了除盐水箱进水、水箱内部腐蚀。主要原因是水箱密封不严密,特别是在冬季,二氧化碳溶解度高的情况下。  【关键词】除盐水;二氧化碳;溶解度  按照GB/T 12145-2016《火力发电机组及蒸汽动力设备水汽质量》标准要求,除盐水箱出水电导率不超过0.4μs/cm。不少电厂制定的运行规程对除盐水箱出口电导率期望值,要求提
期刊
【摘 要】在当前大数据时代下,计算机网络技术的持续性发展,计算机网络技术已经和人们的日常生活和工作进行了深度的融合,人们利用计算机网络技术来处理日常的工作,有效提高了工作的效率以及工作的质量,但是在当前大数据时代下,人们在运用计算机网络时,在信息安全方面还存在着诸多的问题,因此在大数据时代下,人们一定要加强对计算机网络信息安全的重视程度,从整体上提高计算机网络信息的安全性。  【关键词】大数据时代
期刊
【摘 要】人們生活质量和个人财产的积累使其对周边环境的美化要求逐渐提升,灯饰不仅起到照明作用,同时在生活中扮演着装饰作用。本文结合当代发展趋势,概述创意灯饰的设计理念,围绕应用元素、使用环境等方面探究创意灯饰的使用特点,总结今后创意灯饰的发展趋势,为灯具行业的创新发展提供理论支持。  【关键词】创意灯饰;文化内核;生态美学  前言  当代灯饰设计不仅停留在视觉刺激上,还应该追求情感传递和沟通,通过
期刊