`
张江兴
  • 浏览: 121405 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

设计模式:低耦合,高内聚

阅读更多

我是一个JAVA初学者,以前只知道把程序写完写出来就好,再加上足够多的注解就算完成了,从不关心程序是否写的合理,更不知道什么叫设计模式,更不要说是低耦合,高内聚是什么东西,直到培训的老师讲到这,才开始找资料来看,顺便写下自己的理解;

1.低耦合

 先要知道什么是耦合,耦合是元素对其他元素的依赖,连接的度量;一个元素必须在另一个元素存在时才能正常工作,或者有调用另一个元素中的方法,或者与另一个元素相关就说这两个元素耦合;像我们编写JAVA程序中的类就有如下几种情况是耦合:

1.元素B是元素A的属性,或者元素A引用了元素B的实例(这包括元素A调用的某个方法,其参数中包含元素B

2.元素A调用了元素B的方法

3.元素A直接或间接成为元素B的子类

4.元素A是接口B的实现

耦合使得我们和代码可变性低,因为代码中的元素相耦合,使得在一个类要变的情况下其他的类也必须做出相应的变动,这使我们的代码的重复利用变得很麻烦,有时甚至一点小改动而导致代码要重头写;

正是耦合的不足,才强调要低耦合,元素要完全独立是不可能的,我们只能从中找到一个平衡点,尽量和使我们的代码耦合度低,我觉得在写代码时可以多使用接口而不是继承,因为继承就是一种耦合,如果子类A继承了父类B,不论是直接或间接的继承,子类A都必将依赖父类B;子类A必须使用在存在父类B的环境中,父类B不存在子类A就不能使用,这样将影响子类A的可移植性。一旦父类B发生任何变更,更改或去掉一个函数名,或者改变一个函数的参数,都将导致子类A不得不变更,甚至重写。假如父类B的子类数十上百个,甚至贯穿这个项目各个模块,这样的变更是灾难性的;这只是一种不成熟的方法,真正要达到高手的地步,还是要多积累经验,所谓熟能生巧嘛!

2.高内聚

内聚:一个模块内各个元素彼此结合的紧密程度;与耦合相反,内聚是在一个模块中,而耦合是强调整个项目中各模块的之间的关系;在一个模块中各个元素结合的越紧密,代码质量越高;在程序设置中高内聚就是要程序模块内、类内要保持高度的联系,也就是属性间、方法间、属性方法间要高度紧密、不能脱离联系。要么方法中应该存在某些属性的参数,要么属性中要返回方法的结果,这样能够充分调用代码,减少代码的冗余。

<!--EndFragment-->

  • 大小: 6 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics