2012-02-29 121 views
2

我的同事將所有PHP函數封裝在類後面。他的理由似乎是,如果它在一個類中更新代碼將更容易改變。看完他的代碼後,我擔心的是我不知道可能發生了什麼,或者爲什麼可能會出錯。此外,如果它是以課堂形式出現的話,我寧願爲他正在做的事情提供一個靜態函數,因爲在我看來,這將是更好的練習。使用包裝類來隱藏函數

例如,而不是:

$var = filter_var('0755', FILTER_VALIDATE_INT); 

他必須:

class Filter { 
    public function filterInt($var) { 
      return filter_var($var, FILTER_VALIDATE_INT); 
    } 
} 

$filter = new Filter(); 
$var = $filter->filterInt('0755'); 

哪種方式是更好的做法?更好的長期表現?更好的理解?

+0

一類需要更長的時間來啓動,則單個功能,但對於使用類與適當的可擴展性試驗和經過測試的設計模式/ s類/ oop勝過程序,tho程序可以更容易理解早期的開發者,但那不是重點,順便說一句,它不會混淆它的封裝 – 2012-02-29 23:29:28

回答

1

方法隱藏功能是很好的做法,Code Complete解釋得很好,爲什麼這樣。

如果您想更改filterInt,例如添加上下限,如果你封裝了它,你會更好。

  • 更少的代碼線被改變
  • 容易測試針對
  • ..
0

對於只有一個像你的例子一樣的方法,沒有什麼意義。

它開始有意義,如果您使用它將所有過濾器功能分組在這裏,您可以有Filter::filterDeliveryAdress,然後,任何時候您必須過濾某些東西,您可能會記得您已經擁有此功能。所以如果你的過濾函數是不夠準確的,你可以在類中修復它,使它在所有的代碼中得到修復。

當然,這裏的靜態函數會更好,它更易於使用。

如果我認爲這只是對相關函數進行分組並且使用PHP> = 5.3,那麼命名空間會更合適。