站在人的角度写代码 荣

今天在写一个程序,其中有几个类是原来的项目中已经存在的,为了图方便我就把这几个类一个一个的拷贝过来了。

每当我拷贝一个的时候我都编译一遍。

当拷贝第一个类的时候,编译时出现错误,提示找不到A类,

把A类再拷贝过来,编译后又说找不到B类,找到B类又说找不到C类,

如此拷贝了半天才把所需要的东西拷贝过来,编译成功。

觉得:

    这样A类调用B类,B类调用C类,...他们之间的这些关系太让人郁闷了。应归程序是以前自己写的,少了类知道向哪儿找去,如果是别人写的,估计光找关联的类要找老半天。

  由此推想,不刚是拷贝类的时候会出现混乱,这样的时候毕竟很少。别人看代码的时候,出现这样的现象最让人郁闷,正在查看这A类,又要去B类看看怎么回事,很可能这下又从B类到了C类,想象也让人头大,特别是看代码喜欢看究竟的人。

为什么会出现这样的强耦合呢?

第一:缺少规划:

缺少规划是出现这样强耦合的原因之一,写程序很随意,写道哪儿是哪儿,哪儿有写好的函数名就直接拿来用。

第二:设计过度

能出现这么多一环套一环的类,还有一种可能就是设计过度了。自己觉得抽象的很好,把公共部分都抽象在相应的函类里了,越设计类越多,到最后就是这个样子了。

如果说这是设计过度也可以,但是,也可以说这是设计不到位,因为你只把精力放在代码上了,而忽略了设计服务的对象是人,是用代码看代码的人,设计应该是让用代码的人感觉好用,感觉方便,感觉易懂,而不是感觉每个类抽象的很好,但是每个类关联都很多。

所以,如果我们设计代码的时候发现类很多,相互关联【引用】很多,就应该是站在人的角度反思设计的时候了。

设计过度其实还有一种情况就是把函数拆分成n个很小的函数,每个函数是很清楚,但让人理解一个功能却要跳来跳去找n个函数。

第三:没有站在用户的角度考虑【用户:用代码和看代码的人】

我所说的用户是调用你的程序的程序员。

没有站在用户的角度来思考,而仅仅是站在面向对象,技术的角度来思考代码是不好的,就像第二条所说。

给类,函数,变量起一个好名字,添加好的注释,都应该站在用户的角度考虑。

为别人看代码着想,起个好名字,把注释写明白,明白到别人看到一个函数后,根据名称,根据注释就知道这个函数要干什么,不需要查看函数的每句代码去查看作者的意图。

第四:出现了杂烩类

一个类既要干这件事又要干那间事,这期间就可能要引用很多的类,增大了类耦合的可能性。

原文地址:https://www.cnblogs.com/admin11/p/1235319.html