专家说别用 if-else 编码方式,那代码怎么写( 二 )
如何处理新的条件功能?
如果新功能通常会使用一些条件检查来实现 , 现在你可以直接创建一个新的状态类 。
就这么简单 。 你将不再需要处理笨重的 if-else 语句 。
如何将状态对象持久化在数据库中?
不需要 。
当把一个对象保存到 SQL 或 NoSQL 数据库时 , 状态对象并不重要 。 只有知道对象的状态 , 以及如何将其映射到列才是重要的 。
你可以将状态映射到一个友好的类型名、一个枚举或一个整型 。 只要你有某种方法将保存的值转换回状态对象 , 那就任何方法都行 。
但为什么你还在使用 if?
是的 , if 有时是必不可少的 , 尤其是作为防护语句(guard clause)使用时 。 If-Else 组合才是让人头疼的可维护性的根本原因 。
但是你介绍的方法会带来很多额外的类!
的确如此 。 正如我在另一篇文章中提到的 , 复杂性并不源于你拥有的类的数量 , 而是源于这些类所承担的责任 。
拥有许多专门的类 , 会让你的代码库更易读、更易维护 , 而且整体上更容易让人喜欢 。
参考链接:
--------------------------
Examples by Refactoring Guru
https://refactoring.guru/design-patterns/state
Examples by SourceMaking
https://sourcemaking.com/design_patterns/state
How to make your code more Object-Oriented by Zoran Horvat
https://app.pluralsight.com/library/courses/c-sharp-code-more-object-oriented/table-of-contents
C# Design Patterns: State by Marc Gilbert
https://app.pluralsight.com/library/courses/c-sharp-design-patterns-state/table-of-contents
原文链接:
https://medium.com/swlh/stop-using-if-else-statements-f4d2323e6e4
本文由高可用架构翻译 , 技术原创及架构实践文章 , 欢迎通过公众号菜单「联系我们」进行投稿 。
高可用架构
改变互联网的构建方式
- 范乔丹|薪资专家:若范乔丹收到超过4年8000万的报价 猛龙将不容易匹配
- 一起来护肤|我国“60年最冷冬天”要来了? 国家天气中央专家作出回应
- 美国|俄专家大胆预测:疫情结束后,这3国将成为美国进攻的首要目标
- 生猪价格|5涨9跌!猪价连涨“熄火”,新一轮跌价潮来袭?看业内专家咋说!
- |中国进入一级战备爆发出的战力,有多强大?德专家:不可战胜
- 央视新闻|美国专家:接下来6至12周美或将迎来疫情最黑暗时期
- 海军陆战队|美两大军种争资源,抢着对抗中国?美专家:对手导弹太多,应互补
- 央视|美国医学专家:接下来的6至12周或将迎来新冠疫情最黑暗的时期
- 美国|一旦美国衰落,世界会不会就此太平,专家:将有两个国家无法控制
- 户籍|专家研讨特区40年:淡化户籍使得深圳劳动力市场弹性充足