我是靠谱客的博主 超级高山,最近开发中收集的这篇文章主要介绍《重构》读书笔记(九)——第九章 简化条件表达式,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 第九章 简化条件表达式

1、 分解条件表达式(Decompose Conditional)通常与提炼函数(Extract Method)一起使用。

      “编写短小的函数”。

2、合并条件表达式(Consolidate Conditional)

      合并条件表达式,使用Extract Method将条件表达式提炼成一个独立的函数,并为函数取一个意义清晰的名字,大部分情况下这都可以大大提高代码的可读性。

      当然,并非所有这种情况都得合并,如果你认为这些检查的确彼此独立,的确不应该被视为同一次检查,那么就不要合并!

3、合并重复的条件片段(Consolidate Duplicate Conditional Fragments)

      重复代码是万恶之源!

4、 移除控制标记(Remove Control Flag)P245

      在以前的结构化编程原则中,大家都提倡”每个子程序只能有一个入口和一个出口“。现代编程语言已经强迫我们”单一入口“,但是”单一出口“原则会使你加入讨厌的控制标记和难于阅读的代码结构。

5、以卫语句取代嵌套的条件表达式(Replace Nested Conditional With Guard Clauses)P250

      使用卫语句的时候,经常在卫语句内返回一个明确值,因为这样我们可以一目了然地看到卫语句返回的失败结果。

6、以多态取代条件表达式(Replace Conditional With Polymorphism)

      在面向对象术语中,听上去最高贵的词非“多态(Polymorphism)”莫属。你手上有一个条件表达式,它根据对象类型的不同而选择不同的行为。这时应该用“以多态取代条件表达式”重构之。

      正因为有了多态,所以你会发现:”类型码的switch语句“以及”基于类型名称的if-then-else语句“在面向对象程序中很少出现。

      多态能够给我们带来很多好处。如果同一组条件表达式在程序的许多地点出现,那么使用多态的收益是最大的。

7、引入空对象(Introduce Null Object)

      Null Object模式。

8、引入断言(Introduce Assertion)

      使用断言。 

      注意,不要滥用断言。请不要使用它来检查“你认为应该为真”的条件,请只使用它来检查“一定必须为真”的条件。你应该常常问自己:如果断言所指示的约束条件不能满足,代码是否仍能正常运行?如果可以,就把断言扔掉。

最后

以上就是超级高山为你收集整理的《重构》读书笔记(九)——第九章 简化条件表达式的全部内容,希望文章能够帮你解决《重构》读书笔记(九)——第九章 简化条件表达式所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部