设计原则 --- 函数的设计

函数应从使用者角度命名,描述其功能,保持单一职责,长度不超过100行。参数不宜过多,通常限制在五个左右,需检查合法性。函数参数应使用大接口如IEnumerable,返回值应尽量小且具体,如返回LinkedList而非List。
摘要由CSDN通过智能技术生成

设计原则 --- 函数的设计

函数命名和职责

  • 从使用者的角度去命名函数, 使用常用的好理解的词汇
  • 函数的命名要描述函数的功能, 即使会导致函数名字过长
  • 比如这个集成测试函数:
    public async Task Upload_File_InPiece_Should_Download_The_Full_FIle()
  • 单一职责: 一个函数只负责一件事情.
  • 复杂度: 一个函数通常长度不应超过100行. 如果一个函数过长或者出现复杂逻辑或者圈复杂度过高的情况, 则需要将相关逻辑封装成独立的函数.
  • 不要在一个函数中使用空行或者注释将代码分为不同的部分, 因为这代表着函数功能不单一, 如下:
public void Method {
// 一些注释解释下面的代码
.......

// 一些注释解释下面的代码
......
}

函数参数和返回值

  • 函数的参数不应过多, 通常最多为五个或者六个
  • 要注意对参数的合法性进行检查, 比如判断是否为空等
  • 函数的参数应该尽可能的大, 也就是尽可能的abstract
  • public void LoopDataStructure (IEnumerable<string> myDataStructure) 在C#中Collection的很多数据结构都实现了IEnumerable这个接口, 这样大部分数据结构都可以使用这个方法
  • public void LoopList (List<String> list) 将参数声明成List可以保证Java中的ArrayList和LinkedList都可以使用这个方法.
  • 要注意函数的参数是pass by value还是pass by reference. Java和C#的reference type传递的是reference值, 也就是在方法中对参数的修改也会改变外面的值, 具体见: Java 基础 — Java变量储存机制及参数传递
  • 函数的返回值应该尽可能的小, 比如返回LinkedList而不是List, 这样的好处是, :
    List<String> list = createList()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值