我今天在考虑面向对象设计,我想知道是否应该避免 if 语句。我的想法是,在任何需要 if 语句的情况下,您都可以简单地创建两个实现相同方法的对象。这两个方法实现只是原始 if 语句的两个可能的分支。
我意识到这看起来很极端,但似乎你可以尝试在某种程度上争论它。对此有什么想法吗?
编辑
哇,这并没有花很长时间。我想这实在是太极端了。但是否可以说,在 OOP 下,您应该期望更少的 if 语句?
第二次编辑
这个怎么样:一个根据其属性确定其方法实现的对象。也就是说你可以通过两种方式实现someMethod()
并指定一些限制。在任何时候,对象都会根据其属性路由到正确的方法实现。因此,在 if(x > 5)
的情况下,只有两个依赖于 x
属性的方法
最佳答案
我可以告诉你一件事。无论人们怎么说,考虑简化和消除不必要的分支是您作为软件开发人员成熟的标志。分支不好的原因有很多,测试、维护、错误率较高等等。这是我在面试人员时寻找的东西之一,也是他们作为开发人员成熟程度的一个很好的指标。我鼓励您继续尝试,通过使用更少的条件来简化代码和设计。当我进行此切换时,我发现调试代码的时间少了很多,它很简单,然后当我必须更改某些内容时,更改非常容易,因为大多数代码都是连续的。我再次鼓励你 100% 继续做你正在做的事情,不管别人怎么说。请记住,大多数开发人员的工作和思考水平要低得多,并且只是遵循规则。提出这个问题真是太好了。
关于oop - 避免 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1337565/