2014-03-25 21 views
0

考慮到需要創造一些常見的功能,你會被認爲是最佳實踐庫,使用具有隔離功能的庫文件是這樣的:用靜態方法創建一個帶有函數或類的庫?

function utilA(){ 
    echo 'I am a lib with util A function'; 
} 

function utilB(){ 
    echo 'I am a lib with util B function'; 
} 

function utilC(){ 
    echo 'I am a lib with util C function'; 
} 

或者創建擁有這樣的靜態方法的類:

class Utils{ 

    static function utilA(){ 
     echo 'I am A static method from Utils'; 
    } 

    static function utilB(){ 
     echo 'I am B static method from Utils'; 
    } 

    static function utilC(){ 
     echo 'I am C static method from Utils'; 
    } 

} 
+0

我認爲你最好重構這個,而不是在一個類中查找許多不相關的靜態方法。這不是面向對象。 –

回答

1

我肯定會推薦去上課。它使您的代碼可以在其他好處中移植,例如類屬性 - 通常您需要在過程函數中使用全局變量。您還可以在類中使用可見性,以便公共範圍不能訪問您的私有/受保護方法和屬性(如果您不希望它們)。

如果可能,我會遠離靜態方法。他們很難測試,如果可以使錯誤跟蹤繁瑣,類會變得越複雜。相反,你可能希望看看dependency injection。基本上你實例化你的工具類,並通過構造函數或者mutator方法將它傳遞給另一個需要它的類。 (但是,不要讓我把你完全從靜態變爲靜態,就像糖一樣,如果你使用它們,儘可能保持簡單。)

如果你試圖組織代碼段成部分雖然,我會建議你有a look at namespaces。他們可以幫助您組織公用事業,並將其納入其他項目,同時最大限度地減少任何命名衝突。

希望有所幫助。

相關問題