面向对象编程九诫
面向对象编程九诫,也许你没有听说过,如果有了解过,就当再复习一遍。
接下来一起看看这九诫指的是什么?
方法只使用一级缩进。
拒绝使用 else 关键字。
封装所有的原生类型和字符串。
一行代码只有一个“.”运算符。
不要使用缩写。
保持实体对象简单清晰。
任何类中的实例变量都不要超过两个。
使用一流的集合。
不使用任何 Getter/Setter/Property。
规则 1:方法只使用一级缩进
我们常见的原则是方法的行数控制在 5 行之内(原先更多听到的实践是控制在一屏,这个刷新了我的认识),当然要达到这一原则的要求确实不易。但是你可以尝试让每个方法只做一件事情:只包含一个控制结构或代码块。
规则 2:拒绝 else 关键字
条件判断结构通常是重复代码的来源。在现有的判断条件上加上新的分支非常容易,层层嵌套,眩晕无比,拒绝 else,可以让代码更清晰一些。
规则 3:封装所有的原生类型和字符串
小对象可以提高程序的可维护性,它可以提供给编译器和其他程序员更多的信息:这个值是什么,为什么使用它。
规则 4:一行代码只有一个“.”运算符
迪米特法则(The Law of Demeter,"只和身边的朋友交流")。
规则 5:不要使用缩写
缩写会令人感到迷惑,也容易出现一些问题。
一般都是名字太长,才会使用缩写。尽量做到所有实体对象的名称都只能包含一到两个单词。
规则 6:保持实体对象简单清晰
要做到这一点,要求有点苛刻,每个类的长度不能超过 50 行,每个包所包含的文件不超过 10 个。小于 50 行代码的类:一屏幕就可以现实完整,可以方便、快速地熟悉这个类。
规则 7:任何类中的实例变量都不要超过两个
一种类只负责维护一个实例变量的状态;另一种类只负责协调两个独立的变量。
规则 8:使用一流的集合
任何包含集合的类都不能再包含其他的成员变量。
规则 9:不使用任何 Getter/Setter/Property
讲述而不要询问(“Tell,don't ask”)
版权声明: 本文为 InfoQ 作者【风翱】的原创文章。
原文链接:【http://xie.infoq.cn/article/cd198ec82448ae9a45425fa53】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论