Loading

代码整洁之道-类

在面向对象的编程中,类是其中的基本单位,就像面向过程中的函数一样。所以在说类时,可以借鉴一下前面的函数,不如只做一件事,也就是所说的单一职责。

函数应该短小,对于类来说,也是这样。函数的短小可以通过代码行数来判断,对于类来说,如何判断呢?可以通过判断其职责,也就是看它是否只做一件事情。同时做多件事情的类,命名也是一件痛苦的事情。比如一个类名叫 Manneger,很容易让人误解,它管理什么呢?

所以,简单来说,一个类应该只做好一件事,足矣。

当然,大概率写出的第一版不会遵循这个规则。所以对其拆分就不可避免了。

比如,在拆分一个方法时,新的方法使用了原来的4个变量,那么是不是就要将这4个变量作为参数传递进去呢?我不要。其实完全可以将这4个变量作为类的属性。但是这样的话问题来了,难以避免的会导致类中出现很多只在个别方法中用到的属性,很难受。等等,只在个别方法中用到,为什么不能把他单独拆解作为一个类呢?很好。


首先,我觉得这样做很好,感觉很好,但是说不上来的那种好。虽然感觉这样写出来的会很清晰,但还从来没有这样写过,之后自己试一试,看看效果是否真如作者所说一样。各位看官也尽可一试。

2019/9/25: 个人理解

其实我也在想,原本只需要两个类就能解决问题,这样写之后,可能会出现十个类。

如果把函数比做一个人,这个人只有一个工作,只需要做一件事,那么类就像是一个公司,这个公司聚集了一大堆向同一个目标奋斗的人,规模很小时, 怎么搞都好. 但是随着公司越来越大,势必不好管理,这时候就要把公司再分成多个子公司,或者多个部门,虽然各个部门合力奋斗的目标是一致的,但是部门的划分还是会使得分工明确,便于管理。

对比类来说,大概就是这个道理 

posted @ 2019-09-22 19:20  烟草的香味  阅读(243)  评论(0编辑  收藏  举报