如果从if-else转向switch-case,再过渡到抽象逻辑,应该如何实现?

2026-05-25 12:040阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2726个文字,预计阅读时间需要11分钟。

如果从if-else转向switch-case,再过渡到抽象逻辑,应该如何实现?

在接触手稿遗留给后人的代码时,最让人感到不厌其烦的是什么?是复杂无比的UML图吗?我觉得并非如此。我的答案是,超过两个if语句的嵌套,或者超过两个case的switch结构。这可能在代码中造成大量冗余。

大家觉得在接手遗留代码时,见到什么东东是最让人感到不耐烦的?复杂无比的 UML ?我觉得不是。我的答案是,超过两个 else 的 if ,或者是超过两个 case 的 switch 。可是在代码中大量使用 if else 和 switch case 是很正常的事情吧?错!绝大多数分支超过两个的 if else 和 switch case 都不应该以硬编码( hard-coded )的形式出现。

复杂分支从何而来 首先我们要讨论的第一个问题是,为什么 遗留代码里面往往有那么多复杂分支。这些复杂分支在代码的首个版本中往往是不存在的,假设做设计的人还是有点经验的话,他应该预见将来可能需要进行扩展的 地方,并且预留抽象接口。

但是代码经过若干个版本的迭代 以后,尤其是经过若干次需求细节的调整以后,复杂分支就会出现了。需求的细节调整,往往不会反映到 UML 上,而会直接反映到代码上。例如说,原本消息分为聊天消息和系统消息两类,设计的时候自然会把这设计为消息类的两个子类。

阅读全文

本文共计2726个文字,预计阅读时间需要11分钟。

如果从if-else转向switch-case,再过渡到抽象逻辑,应该如何实现?

在接触手稿遗留给后人的代码时,最让人感到不厌其烦的是什么?是复杂无比的UML图吗?我觉得并非如此。我的答案是,超过两个if语句的嵌套,或者超过两个case的switch结构。这可能在代码中造成大量冗余。

大家觉得在接手遗留代码时,见到什么东东是最让人感到不耐烦的?复杂无比的 UML ?我觉得不是。我的答案是,超过两个 else 的 if ,或者是超过两个 case 的 switch 。可是在代码中大量使用 if else 和 switch case 是很正常的事情吧?错!绝大多数分支超过两个的 if else 和 switch case 都不应该以硬编码( hard-coded )的形式出现。

复杂分支从何而来 首先我们要讨论的第一个问题是,为什么 遗留代码里面往往有那么多复杂分支。这些复杂分支在代码的首个版本中往往是不存在的,假设做设计的人还是有点经验的话,他应该预见将来可能需要进行扩展的 地方,并且预留抽象接口。

但是代码经过若干个版本的迭代 以后,尤其是经过若干次需求细节的调整以后,复杂分支就会出现了。需求的细节调整,往往不会反映到 UML 上,而会直接反映到代码上。例如说,原本消息分为聊天消息和系统消息两类,设计的时候自然会把这设计为消息类的两个子类。

阅读全文