我想要一個小小的php模塊。該模塊將具有純功能的方法。所以,這只是一個功能集合。所有函數只取決於輸入參數獲取一些參數並返回結果。爲php模塊選擇什麼模式?
我有一些建議:
1.靜態類
PHP還沒有真正的靜態類,所以我只是做了所有的靜態方法的類:
class Some_Module
{
static public function sum($a, $b, $c)
{
return $a+$b+$c;
}
static public function method2($a, $b)
{
return $a-$b+5;
}
}
這是非常容易使用這樣的模塊:
$x = Some_module::sum(1,2,3);
但是,我聽說過(這裏有很多話題),靜態是一種不好的做法。
2.辛格爾頓
這不是那麼容易使用:
// we should not to forget to get instance
$module_instance = new Some_module;
$x = $module_instance->sum(1,2,3);
不便是事實,那我們現在應該初始化這個模塊。 另外,SO上有大量的主題,其中解釋了爲什麼Singleton在PHP中沒有用處,所以這也是一個不好的做法。
這種模塊使用什麼模式?
這是一個不好的做法,採取傳聞的建議。 - 你的例子太抽象了,不推薦使用其他實現。然而,顯然將輸入函數引入對象並不是非常明智的。雖然它們應該是普通的函數,但靜態類是功能分組的一個可接受的解決方法(僅此而已)。特別是如果你無法忍受命名空間的語法替代。 – mario 2012-02-02 02:57:22