我有一位同事告诉我,他曾经为一家公司工作,该公司的政策是在代码中永远不会有条件("if"和"switch"语句)并且他们让代码中的所有决策都使用多态性和(我猜)其他一些OO原则.
我有点理解这背后的原因,让代码更干,更容易更新,但我正在寻找对这个概念的更深入的解释.或者它可能是更通用的设计方法的一部分.
如果任何人有任何资源或愿意解释甚至有更多与此相关的术语我可以用来找到更多的答案,我将非常感激.
我发现一个关于SO的问题有点相关但我不熟悉C++,所以我不太了解那里的答案.
(我不是OO guru btw,但我可以管理)
我最熟练的PHP,在那之后,我更喜欢那些使用这些语言的信息.
更新:我会问我的同事有关他的确切含义的更多信息.
2015年更新:经过多年的编程经验,我现在看到这个策略的目的可能是阻止程序员通过在某些地方添加条件(if语句)来随意添加功能.扩展软件的更好方法是使用"开放/封闭原则",其中使用继承和多态来扩展软件.我强烈怀疑这项政策是否对所有条件都非常严格,因为如果没有这些条件,这种政策就很难完全实现.
def winner(p1, p2)
wins = {rock: :scissors, scissors: :paper, paper: :rock}
{true => p1, false => p2}[wins[p1] == p2]
end
Run Code Online (Sandbox Code Playgroud)