每个函数指完成单一的功能。单一功能的函数容易理解,容易测试,也容易预测其行为。给已输入,就能知道其输出。
在设计的时候,将函数分为:查询和命令。
查询函数:仅仅查询对象的状态,而不改变对象的状态。比如dist_length.指返回双向链表的长度。 命令函数:只修改对象的状态,而不返回对象的状态。比如:dist_delete只删除链表的结点,并返回其操作是否成功,而不返回当前的长度或者结点是否存在。查询分为:基本查询和复合查询。
基本查询:只查对象的单一状态。 复合查询:可以查询对象的多个状态。比如:window_get_width()或者窗口的宽度,window_get_rect()获得窗口的左上角,宽度和高度。
在实现的时候,检验输入数据,确认使用者正确的调用了函数。契约式设计,规定了调用者和实现者,双方的责任。