美文网首页
回炉重造(一)——从命名开始(实体、方法、属性、常量的命名规则)

回炉重造(一)——从命名开始(实体、方法、属性、常量的命名规则)

作者: justCode_ | 来源:发表于2018-07-17 09:30 被阅读0次

    前言就不说了,直接正题。

    我的标题也很明确了,不过我还是再细致的讲一下。

    回想以下,我们代码是怎么写的。那必须是,新建一个class,在这个class中,定义变量,写方法,有时候还会用到一些常量。那么,下面就来一个超级简单的例子。

    class  Man{

    String name;

    void eat(){

    //todo

    这个是不是很明确,很清晰,就算我没有写一句注释,你也能看懂。我写了一个“man”的类,这个对象有名字这个属性,有“吃”这个方法。

    当然,这是因为这个很简单,所以,大家都能写出来,命名也不存在问题。但是,如果,我改一下,不知道还是不是一样的呢?

    还是上面的例子,我添加一个需求,我要求,这个“man”,拥有到某个地方的能力。

    这个时候,有些童鞋会这么写:

    class  Man{

    String name;

    void eat(){

    //todo

    void goWhere(){

    }

    不知道,大家发现问题没有,这样写至少存在两个问题。第一个问题,我的要求是,到某个地方。这里分解一下,一个是动词“到”,一个是名词“某个地方”

    所以,这个方法可以改为:

    void go(String adress){

    }

    这样改了,是不是,稍微好一点。but,这样改了,还是不够。为什么呢?因为,只是说了到哪里去,但却没说,怎么去。当然,这时候有同学,就会说,可以用继承呀,子类重写这个go方法,然后,根据子类去写怎么去。那么问题来了,就以这个为例,你写一个“小明”继承这个“man”,重写go方法。但是,小明同样有多种方式去“go”。可以步行,可以骑车,可以坐车等等。

    那么下面,我说两种方案:

    第一种:

    void goByCar(String adress){

    这种方式,就是直接在方法名上,确定用什么方式(交通工具)。

    第二种:

    void go(String adress,String 方式)

    这里说明以下,我们都知道第二个参数是传一个方式,但是,这个方式用哪个单词最为合适和恰当呢?way?mode?很显然,都不是很好。不然,你百度一下这两个单词试试。那一个单词不可以,我们能不能用一个短语,去表示呢?想想,小明,是要到某个地方去,那就是说,小明需要采取某种“出行方式”去某个地方。那么,你百度一下出行方式,ok,结果是唯一的:Travel mode。所以这个地方,就有答案了:

    void go(String adress,String travelMode){

    }

    ok,到这里,基本算优化了。是不是觉得,一个方法命名,参数命名怎么这么麻烦。但,这样的麻烦,会为你以后再看代码,和修改代码,带来很多的好处。

    最后总结以下:

    实体,属性命名:用名词或者名词短语,实在不行了就用拼音全拼,切勿使用缩写和词不达意的词语。

    方法:动词,动词短语

    常量的话,只说结果。静态常量(全局常量):ACTION_MOBE_LEFT=5。全大写,下划线分割。

    下次,我们再讲什么时候用常量。为什么要用常量。怎么用常量

    相关文章

      网友评论

          本文标题:回炉重造(一)——从命名开始(实体、方法、属性、常量的命名规则)

          本文链接:https://www.haomeiwen.com/subject/hnxwpftx.html