博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
函数的学习与感悟
阅读量:4604 次
发布时间:2019-06-09

本文共 758 字,大约阅读时间需要 2 分钟。

 

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

转载于:https://www.cnblogs.com/gdnyfcuso/p/7283048.html

你可能感兴趣的文章
365. Water and Jug Problem
查看>>
SQL数据库数据检索top和distinct
查看>>
平衡搜索树--红黑树 RBTree
查看>>
sqlite驱动下载
查看>>
让IE6/IE7/IE8浏览器支持CSS3属性
查看>>
队列实现霍夫曼树
查看>>
【Java】图片高质量缩放类
查看>>
Python :类中设置默认属性并修改
查看>>
磁盘管理综合测试
查看>>
Unity3d Shader开发(三)Pass(Pass Tags,Name,BindChannels )
查看>>
UMLet
查看>>
从父控件移除控件
查看>>
calc()制作自适应布局
查看>>
Markdown-写作必备
查看>>
关于在Java中 a!=a 值为真的解释(摘抄)
查看>>
C#串口小助手
查看>>
详解定位与定位应用
查看>>
【前端开发】 5分钟创建 Mock Server
查看>>
java 从键盘录入的三种方法
查看>>
使用jQuery和YQL,以Ajax方式加载外部内容
查看>>