oop - 避免 if 语句

标签 oop if-statement

我今天在考虑面向对象设计,我想知道是否应该避免 if 语句。我的想法是,在任何需要 if 语句的情况下,您都可以简单地创建两个实现相同方法的对象。这两个方法实现只是原始 if 语句的两个可能的分支。

我意识到这看起来很极端,但似乎你可以尝试在某种程度上争论它。对此有什么想法吗?

编辑

哇,这并没有花很长时间。我想这实在是太极端了。但是否可以说,在 OOP 下,您应该期望更少的 if 语句?

第二次编辑

这个怎么样:一个根据其属性确定其方法实现的对象。也就是说你可以通过两种方式实现someMethod()并指定一些限制。在任何时候,对象都会根据其属性路由到正确的方法实现。因此,在 if(x > 5) 的情况下,只有两个依赖于 x 属性的方法

最佳答案

我可以告诉你一件事。无论人们怎么说,考虑简化和消除不必要的分支是您作为软件开发人员成熟的标志。分支不好的原因有很多,测试、维护、错误率较高等等。这是我在面试人员时寻找的东西之一,也是他们作为开发人员成熟程度的一个很好的指标。我鼓励您继续尝试,通过使用更少的条件来简化代码和设计。当我进行此切换时,我发现调试代码的时间少了很多,它很简单,然后当我必须更改某些内容时,更改非常容易,因为大多数代码都是连续的。我再次鼓励你 100% 继续做你正在做的事情,不管别人怎么说。请记住,大多数开发人员的工作和思考水平要低得多,并且只是遵循规则。提出这个问题真是太好了。

关于oop - 避免 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1337565/

相关文章:

c# - 我应该通过在我的类中注入(inject)构造函数来明确具体的类依赖关系吗?

c++ - 在 GLUT 中使用非成员方法作为回调

c++ - 条件与运算符?

c++ - 如何操作这个界面?

language-agnostic - 关系数据库中的"Diffing"对象

用于类声明的 C++ 模板

javascript - 基于数组函数结果的 If..else 语句

javascript - 允许空白或数字值的正确正则表达式是什么

java - 使用 || (或)或其他运营商?

scala - scala : better approach? 中嵌套 "if"/"match"语句