我今天正在考虑面向对象的设计,我想知道你是否应该避免if语句.我的想法是,在任何需要if语句的情况下,您只需创建两个实现相同方法的对象.这两个方法实现只是原始if语句的两个可能的分支.
我意识到这似乎是极端的,但似乎你可以尝试在某种程度上争论它.有什么想法吗?
编辑
哇,没多久.我想这太极端了.是否有可能说,在OOP下你应该期望更少的陈述?
第二次编辑
那么:一个根据其属性确定方法实现的对象.也就是说,您可以someMethod()通过两种方式实现并指定一些限制.在任何时候,对象都将根据其属性路由到正确的方法实现.所以在if(x > 5)只有两个依赖x属性的方法的情况下
我不想在我的代码中使用Switch,所以我正在寻找一些替代方案
Switch的示例:
function write(what) {
switch(what) {
case 'Blue':
alert ('Blue');
break;
...
case 'Red':
alert ('Red');
break;
}
}
Run Code Online (Sandbox Code Playgroud)
没有Switch的示例:
colors = [];
colors['Blue'] = function() { alert('Blue'); };
colors['Red'] = function() { alert('Red'); };
function write(what) {
colors[what]();
}
Run Code Online (Sandbox Code Playgroud)
我的问题是: