条件表达式应该在类的内部还是外部?

时间:2010-05-22 22:49:39

标签: php class conditional

在我调用它并选择哪个函数取决于某些条件时,通常我会想要从类中执行一些方法。这导致我编写类似于案例1的类,因为它允许我快速包含它们的功能。另一种选择是案例2,如果有很多代码可能需要花费很多时间,并且当我将类放入不同的页面时,意味着要编写两次更多的代码。

话虽如此,案例1由于某种原因而感到非常错误,因为我无法完全按手指。我想,我还没有真正看到任何类似的课程。

编写类似案例1的案例或者案例2优先级是否有任何问题?或者,还有更好的方法?各有哪些优缺点?

案例1

class Foo {
    public function __construct($bar) {
        if($bar = 'action1') $this->method1();
        else if($bar = 'action2') $this->method2();
        else $this->method1();
        }

    public function method1() { }
    public function method2() { }
    }

$bar = 'action1'
$foo = new Foo($bar);

案例2

class Foo {
    public function __construct() { }
    public function method1() { }
    public function method2() { }
    }

$foo = new Foo;
$bar = 'action1';
if($bar == 'action1') $foo->method1();
else if($bar == 'action2') $foo->method2();
else $foo->method1();

1 个答案:

答案 0 :(得分:0)

如果对象初始化需要要调用的方法之一,则调用一个。否则第二种形式是可以接受的。