2014-03-26 88 views
1

我有一個充滿方法的類,這些方法依賴於一些變化的變量,例如。我更改了類正在改變的表名。延長課程或通過增值課程?

處理這種情況的最佳方法是什麼?

  1. 創建一個設置變量的類,並在此類中擴展具有所有方法的類。

  2. 用方法創建類並在構造函數中傳入變量。

  3. 另一種方式?

什麼是一般的經驗法則來決定如何處理這種情況?

此:

class Happy extends Emotions{ 

    protected $table = 'happy'; 

} 

class Emotions { 


    //lots of methods 
} 

或者:

class Emotions { 

    private $table; 

    public function __construct($table){ 

     $this->table = $table; 
    } 
    //lots of methods 
} 
+2

不知道你在找什麼而沒有看到代碼,但它似乎你正在尋找依賴注入:http://fabien.potencier.org/article/11/what-is-dependency-injection – Dev01

+0

添加代碼... .. – panthro

回答

0

兩種方式具有一定的優點和缺點 如果您有這意味着你創建一個新的類,並將其延伸到主情感的第一種方式去類。 這種方法會增加維護成本,即您必須管理多個類。

如果採用第二種方法,會增加複雜性。

我的建議是,如果你是第二種方式的單人展示,它將增加你在編碼時可以處理的複雜性,並且它會降低維護成本,因爲它是單一課程。

如果你是第一種方法的團隊。