替换If-Else的方法有哪些
发表于:2024-09-23 作者:千家信息网编辑
千家信息网最后更新 2024年09月23日,这篇文章主要介绍"替换If-Else的方法有哪些",在日常操作中,相信很多人在替换If-Else的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"替换If-El
千家信息网最后更新 2024年09月23日替换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安全错误
数据库的锁怎样保障安全
pg数据库系统
数据库怎么设置支持中文
火蓝服务器厦门代理
做好中小微企业数据库动态更新
小鼠模型药效数据库
qq显示服务器繁忙
中学生安全教育与网络安全直播
淮安精诚软件开发业务范围
江门自主可控软件开发价格走势
移动宽带服务器地址
服务器虚拟化 多虚一
数据库的考试试卷及答案
小米6亲情守护服务器
数据库系统中并发控制的方法
海南服务器机柜哪种好
数据库test如何创建
网络安全企业影响
华为服务器启动选择u盘
青岛准安互联网科技有限公司
晋江职业中专学校网络技术
游戏如何模拟服务器
电商发展和网络技术
生辰八字 数据库
两张数据库表id这么关键
数据库中允许自动增长
阿里巴巴平台服务器是哪个
电子封装读研软件开发
和软件开发大交到的文案
软件技术 移动软件开发方向
孙悟空互联网科技有限公司