• 代码整洁之道-类


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

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

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

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

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


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

    2019/9/25: 个人理解

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

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

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

  • 相关阅读:
    [CQOI2009]叶子的染色
    CF149D 【Coloring Brackets】
    [BJOI2016]回转寿司
    linux基础学习-19.2-Shell脚本的创建
    linux基础学习-19.1-Shell的介绍
    linux基础学习-18.11-第六关考试题
    linux基础学习-18.10-awk数组
    linux基础学习-18.9-awk中的动作
    linux基础学习-18.8-awk特殊模式-BEGIN模式与END模式
    linux基础学习-18.7-awk范围模式
  • 原文地址:https://www.cnblogs.com/hujingnb/p/11568771.html
Copyright © 2020-2023  润新知