程序的复杂度也大多来自条件逻辑。
1、分解条件表达式:这个技巧涉及将复杂的条件逻辑(if-else 语句)分解成更简单的、单独的函数。对条件判断和每个条件分支分别运用提炼函数
2、合并条件表达式:当有多个条件表达式都导致相同的结果或动作时,使用“逻辑或”和“逻辑与”将它们合并为一个条件表达式。这减少了重复代码,并提高代码的可维护性。
3、以卫语句取代嵌套条件表达式:说白了,就是不要在多个if-else中维护一个返回变量,而是在满足条件的时候直接返回。从而减少代码嵌套。
4、以多态取代条件表达式:一组类型如果每个类型处理各自的一种条件逻辑,我们可以针对switch语句中的每种分支逻辑创建一个类,用多态来承载各个类型特有的行为,从而去除重复的分支逻辑。作业举了鸟和远洋航船的例子,来方便我们理解这一方式。
5、引入特例:在获取某个变量的时候,需要判断nil,这时候可以封装函数,对nil特例做处理,和pb.go提供的get方法的思想是一致的
6、引入断言:只有当某个条件为真时,该段代码才能正常运行,使用断言明确标明这些假设
1、分解条件表达式:这个技巧涉及将复杂的条件逻辑(if-else 语句)分解成更简单的、单独的函数。对条件判断和每个条件分支分别运用提炼函数
2、合并条件表达式:当有多个条件表达式都导致相同的结果或动作时,使用“逻辑或”和“逻辑与”将它们合并为一个条件表达式。这减少了重复代码,并提高代码的可维护性。
3、以卫语句取代嵌套条件表达式:说白了,就是不要在多个if-else中维护一个返回变量,而是在满足条件的时候直接返回。从而减少代码嵌套。
4、以多态取代条件表达式:一组类型如果每个类型处理各自的一种条件逻辑,我们可以针对switch语句中的每种分支逻辑创建一个类,用多态来承载各个类型特有的行为,从而去除重复的分支逻辑。作业举了鸟和远洋航船的例子,来方便我们理解这一方式。
5、引入特例:在获取某个变量的时候,需要判断nil,这时候可以封装函数,对nil特例做处理,和pb.go提供的get方法的思想是一致的
6、引入断言:只有当某个条件为真时,该段代码才能正常运行,使用断言明确标明这些假设