2010-05-22 63 views
1

似乎我經常想在執行某些類時執行某些方法,當我調用它並選擇哪個函數將取決於某些條件時。這導致我編寫類似於案例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(); 

回答

0

如果對象初始化要求的方法一個被調用,則調用一個。否則第二種形式是可以接受的。

相關問題