整洁代码之二:类名和方法名练习

clean code 原文中classnames部分的描述是这样的:

Classes and objects should have noun or noun phrase names likeCustomer,WikiPage,Account, andAddressParser. Avoid words likeManager,Processor,Data, orInfo in the nameof a class. A class name should not be a verb. 


总结一下其实就只有几点


第一点:应该避免Manager,Processor,data or info.

为什么不能用Manager,Processor,data,info呢?我个人认为这些名词都太通用,或者无法给代码的阅读者太多有效的信息。例如CalendarUserData,其实和没说一样,而且也不知道data到底是些什么,个人愚见,这里如果赋予CalendarUserNote或者什么CalendarUserToDoList能够更清晰的体现出来这些到底是什么。Manager,Processor,Handler,Info什么的也是一样。仔细回想起来,自己还真用了不少Handler,Manager什么的,看来之后要尽量减少使用,不到逼不得已没有更好的结果了就不要这样去用。


第二点:尽量不要用动词或者包含动词。

思考一下,为什么要这样呢?比如说魔兽世界这个游戏吧,如果里边有一个类叫做selectEnemy什么的,那么显然这个类的内容很难去写,这看起来更像一个方法。或者CutFinger等等这些类都不合适,因为类是用来产生对象,要不然是主体,要不然是客体,而包含动词的语句一般都是主客体都有的语句,所以类名中包含动词也就是说要包含主体客体,一个类去代表主体客体显然不合适。(姑且这么认为吧)


仅仅明白了是不够的,现在来取几个名字试试。自己给自己出道题好了,就来设计一个简单的电梯控制系统。

需要用到的类应该是Lift,Custom,LiftController。Controller和Manager应该属于类似的名词,根据刚刚学到的知识,这里就可以改成LiftControlElectronicSystem


相反的,方法名尽量要用动词,在上边这个例子中,比如Custom可以有一个pressButtonToGoUp等等,可能不是那么合适,但是总体来说就是最好包含动词。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值