- 函数要短。但不是为了短而短,而是为了表达意思,让读者看了这个函数而能迅速的把握函数要带来的信息。盲目的为了短而,并不是初衷,也不是目的。
- 函数只做一件事。依照单一职责原则(一个类只会因为一个原因改变)设计函数。一个函数要么进行流程控制(即方法里面先调用A方法,再调用B方法,再调用C方法,依次调用,这种方法只起到拼接传递,串接流程的作用)或逻辑判断(什么是逻辑判断,比如买火车票,根据身份证号判断,此人是否有买过当天同车次的车票),要么改变某事物的状态(比如:买火车票,检查用户退票次数,一天是超过三次,如果是就把当前用户给锁上,今天就不能再进行买票了,更改用户的锁定状态),要么计算并返回结果,要么调用多个下一抽象级的其他函数(另一种流程控制而已)。不要有多余功能。
- 最好把函数分解成多个抽象层级来设计,同一层级的函数,依照倒树状图来设计函数。
- 函数不应该有作为标识的参数,这意味着函数会有多种不同的执行方式被改变。
- 函数参数最多有两个,或者是具体的操作值,或者是封装之后的参数对象。
- 自身行为状态的改变,不应该让外界去改变,应该由对象本身对外提供改变的能力,例如:判断用户是否可以构买火车票,应该由用户本身提供是否可以买火车票的函数,而不应该调用一个函数在对象外操作,来改对象内部的操作。把改变类x的状态的函数调用addFooter(x),改为x.addFooter()。
- 函数不要返回错误码,这需要你有错误码的枚举类,并且违反了开放封闭原则(你需要加入新错误码来扩展新错误),直接抛出异常就好了。(可以通过继承父异常来扩展)
- 函数名称描述清楚,不要有歧义,不要容易混淆,注释写场景,能不用文档说明就不用。
时间: 2024-11-08 19:25:39