替换If-Else的方法有哪些
发表于:2025-02-22 作者:千家信息网编辑
千家信息网最后更新 2025年02月22日,这篇文章主要介绍"替换If-Else的方法有哪些",在日常操作中,相信很多人在替换If-Else的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"替换If-El
千家信息网最后更新 2025年02月22日替换If-Else的方法有哪些设计更好的软件,替换If-Else的5种方法。入门到高级示例 它导致设计复杂,代码可读性差,并且可能导致重构困难。 但是,If-Else已成为事实上的代码分支解决方案,这确实是有道理的。这是向所有有抱负的开发人员讲授的第一件事。不幸的是,许多开发人员从来没有前进到更合适的分支策略。 有些人的口头禅是:If-Else是一把锤子,一切都是钉子。 无法区分何时使用更合适的方法是区分大三学生和大三学生的原因之一。 我将向您展示一些技巧和模式,这些技巧和模式将终结这种可怕的做法。 每个示例的难度都会增加。 这也许是那些初级开发人员最负罪的之一。下面的示例很好地说明了当您被认为If-Else很棒时会发生什么。 > Simple if-else 只需删除else`块即可简化此过程。 > Removed else 看起来更专业吧? 您会经常发现,实际上根本不需要其他块。像在这种情况下一样,您想要在满足特定条件的情况下执行某些操作并立即返回。 如果您要根据提供的某些输入为变量分配新值,请停止If-Else废话-一种更具可读性的方法。 > Value assignment with if-else 尽管很简单,但它却很糟糕。首先,If-Else很容易在这里被开关取代。但是,我们可以通过完全删除else来进一步简化此代码。 > If statements with fast return 如果不使用else,则我们将剩下干净的可读代码。请注意,我也将样式更改为快速返回而不是单返回语句-如果已经找到正确的值,继续测试一个值根本没有意义。 通常,我发现,如果方法提供了无效的值,则继续执行是没有意义的。
假设我们从以前就有了DefineGender方法,要求提供的输入值必须始终为0或1。 > Method without value checks 在没有价值验证的情况下执行该方法没有任何意义。因此,在允许方法继续执行之前,我们需要检查一些先决条件。 应用保护子句防御性编码技术,您将检查方法的输入值,然后继续执行方法。 > Check preconditions with guard clauses 至此,我们确保仅在值落在预期范围内时才执行主逻辑。 现在,IF也已被三元代替,因为不再需要在结尾处默认返回"未知"。 假设您需要执行一些操作,这些操作将根据某些条件进行选择,我们知道以后必须添加更多操作。 也许有人倾向于使用久经考验的If-Else。如果添加新操作,则只需简单地添加其他内容即可。很简单 但是,就维护而言,这种方法不是一个好的设计。 知道我们以后需要添加新的操作后,我们可以将If-Else重构为字典。 可读性已大大提高,并且可以更轻松地推断出该代码。 注意,仅出于说明目的将字典放置在方法内部。您可能希望从其他地方提供它。 这是一个稍微高级的示例。 通过用对象替换它们,知道何时甚至完全消除If。 通常,您会发现自己不得不扩展应用程序的某些部分。作为初级开发人员,您可能会倾向于通过添加额外的If-Else(即else-if)语句来做到这一点。 举这个说明性的例子。在这里,我们需要将Order实例显示为字符串。首先,我们只有两种字符串表示形式:JSON和纯文本。在此阶段使用If-Else并不是什么大问题,如果我们可以轻松替换其他,只要如前所述即可。 知道我们需要扩展应用程序的这一部分,这种方法绝对是不可接受的。 上面的代码不仅违反了"打开/关闭"原则,而且阅读得不好,还会引起可维护性方面的麻烦。 正确的方法是遵循SOLID原则的方法-我们通过实施动态类型发现过程(在本例中为策略模式)来做到这一点。 重构这个混乱的过程的过程如下: 替换上面示例的代码如下所示。是的,这是更多代码的方式。它要求您了解类型发现的工作原理。但是动态扩展应用程序是一个高级主题。 我只显示将替换If-Else示例的确切部分。如果要查看所有涉及的对象,请查看此要点。 让我们快速浏览一下代码。 方法签名保持不变,因为调用者不需要了解我们的重构。 首先,获取实现通用接口IOrderOutputStrategy的程序集中的所有类型。然后,我们建立一个字典,格式化程序的displayName的名称为key,类型为value。 然后从字典中选择格式化程序类型,然后尝试实例化策略对象。 最后,调用策略对象的ConvertOrderToString。
这篇文章主要介绍"替换If-Else的方法有哪些",在日常操作中,相信很多人在替换If-Else的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"替换If-Else的方法有哪些"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
让我直接说这句话:If-Else通常是一个糟糕的选择。
1. 完全不必要的Else块
2. 价值分配
3. 前提条件检查
假设我们从以前就有了DefineGender方法,要求提供的输入值必须始终为0或1。
4. 将If-Else转换为字典-完全避免If-Else
5. 扩展应用程序-完全避免使用If-Else
使用公共接口将每个分支提取到单独的策略类中 动态查找实现通用接口的所有类 根据输入决定执行哪种策略
到此,关于"替换If-Else的方法有哪些"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
方法
代码
程序
示例
策略
字典
类型
应用
人员
对象
应用程序
更多
条件
过程
学习
开发
输入
重构
高级
分支
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
金融数据库安全管理办法
黑魂三游戏服务器停止运营
软件开发行业名片模板
删除数据库表和删除所以数据
数据库唯一主键幂等
网络安全者
RUST子阳服务器
德惠正规网络技术哪家好
张家港智能化软件开发系统
陕西影视家庭教育和网络安全
2020江苏网络安全竞赛宿迁
网络安全人才需要多少钱
不懂软件开发也能管理系统
部队网络安全的名句
数据库语句教程
邮箱接收服务器故障
远程服务器端口
史诗级网络安全
网络安全路由器排行
使用账号密码连接不上数据库
金融办网络安全应急演练
进口网络技术服务生产过程
网络通信领域软件开发
摄像头服务器登录超时
电脑怎么与服务器直连
本地戴尔服务器技术指导
沧州软件开发公司
明日之后互通的服务器有哪些
软件开发如何体现业绩
央林电视网络安全公司怎么样