首页 > 其他分享 >如何降低类之间的耦合

如何降低类之间的耦合

时间:2022-12-27 19:39:31浏览次数:33  
标签:java 代码 降低 如何 零件 耦合 订做


最近在写人员信息管理的程序,用Java实现,第一次CC完,我就写了一个类和一个test类Tmis.java,只是实现了功能,却没有用OO的思想,代码重用几乎不可能,第二次CC完,类分为了Tmis.java,Employee.java,BasicInfo.java,DetailInfo.java,但是耦合性很强,如何降低耦合性,是我接下去几天的任务。大家有秘籍的可要交流一下啊。下面是网上的一篇文章,觉得不错。
————————————————
如何看到一篇文章,讲java中将要尽量使用接口,应尽量避免使用继承,这对敏捷开发尤其重要。这篇文章的主要观点就是接口能够很大程度上的降低耦合。降低耦合对于敏捷开发非常重要。敏捷开发的过程不像传统的软件工作流程,先你设计,再编码;而是需求一出来就开始编码(不知道这么理解对不对),没有详细的design,需求变了就修改代码,改进代码。如果耦合太强的话,越往后修改的代价就越高,直到不可能修改,整个项目失败。
最近刚好又在看自己以前的代码,修bug,感觉自己以前的代码写得挺乱的,充其量也就是懂语法。其中不乏各种不必要的继承。最要命的问题是,很多类共同完成一个功能,耦合非常高,单个类的测试非常困难。以后每实现一段代码时,一定要想好怎么样好测试。
再者,其实写代码和做其他的产品都差不多。每个模块就是一个零件。当这个零件和其他的零件之间的关系非常小的时候,它才可能更通用,成为标准零件,才能被重复使用,例如机械中的螺丝。这倒让我想起了大学里学过的“造船成组技术”,我突然感觉到软件工程和造船也差不多。造船,批量生产的不多,大都是按照不同的需求来量身订做,软件也大都如此;尽管每艘船都是量身订做,但其中除了通用的零件外,大部分零件都需要订做,但是这些订做的零件中,很多部件在同一艘船上也可能多次用到,软件中也是这样,除了基本的类库,大部分模块也是要重新实现,但很多模块也会被重复使用到。
说得有点远了。总之,要降低耦合,让你每一小块代码都功能明确,都能测。

标签:java,代码,降低,如何,零件,耦合,订做
From: https://blog.51cto.com/u_4176761/5973408

相关文章

  • 在TableViewer中如何给表格的单元格增加其他组件的编辑功能
    我想实现在JFace/SWT下的TableViewer中的单元格中能添加一些组件比如Button,Text,Label的功能,我查了一下,JFace本身已经实现了ComboBoxCellEditor,TextCellEditor,CheckboxCellE......
  • JS如何做页面重定向
    cattencent.html <html><head><title>Welcometonginx,Allen!</title><scripttype="text/javascript">location="http://app100630301.imgcache.qzoneapp.com/app100630......
  • 如何只搜索自己博客站的文章
    不作为,投诉了几个月的博客搜索只搜索自己博客内的功能一直拖着不给恢复,只能自己想办法。发现以下语句百度不支持,只能找伟大的Google,,果然可行!但先要通过代理上得去Googlengi......
  • 如何用JAVA调用服务器系统指令
    java在企业级项目开发中,无论是强制性的功能需要,还是为了简便java的实现,需要调用服务器命令脚本来执行。在java中,RunTime.getRuntime() .exec() 就实现了这个功能。 用法:......
  • 如何对生产环境的JAVA应用进行远程调试
    JAVA自身支持调试功能,并提供了一个简单的调试工具--JDB,类似于功能强大的GDB,JDB也是一个字符界面的调试环境,并支持设置断点,支持线程线级的调试。 1.在服务器上的进程启动参数......
  • Web项目如何引用其他java项目
    Web项目为DynamicWebProject,Tomcat插件下载地址:http://tomcatplugin.sf.net/update1.将tomcatplugin插件中的DevloaderTomcat7.jar拷贝到tomcat安装目录下的lib文件......
  • 如何设置交换区swap空间
    #!/bin/bashswap_file=/data/swap/swapfileswap_dir=$(dirname${swap_file})if![[-d${swap_dir}]];thenmkdir-p${swap_dir}fiif[[-f${swap_file}]];then......
  • linux-centos7如何重置root管理员密码
    先决条件先查看是否是RHEL7系统cat/etc/redhat-releaseRedHatEnterpriseLinuxServerrelease7.0(Maipo)操作步骤#重启系统reboot#引导界面,按“e”进入内......
  • 如何创建&美化博客(页面定制CSS代码)
    如何创建&美化博客的页面定制CSS代码:*,.Cal{padding:0}::-moz-selection{background:#807dd4;color:#FFF}::selection{background:#807dd4;color:#FFF}::-webkit-selectio......
  • 请问如何退订中国移动这个首月1元5GB(次月30)的业务?
    请问如何退订中国移动这个首月1元5GB(次月30)的业务? https://www.zhihu.com/question/436743556 关注者61被浏览272,463关注问题​写回答......