私は少しPHPモジュールを持っていたいと思います。このモジュールには、純関数であるメソッドがあります。したがって、これは単なる関数の集まりです。すべての関数は、引数を取得し、入力パラメータのみに応じて結果を返します。どのようなパターンは、PHPモジュールのために選択する?
私はいくつかの提案を持っている:PHPは、実際の静的なクラスをしていないので、私はちょうどすべての静的メソッドを持つクラスを作る
1.静的クラス
を:
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);
しかし、私は聞いたことがあります(SOにはたくさんの話題があります)、静的は悪い習慣です。
2.シングルトン
それは非常に使いやすいではありません。
// we should not to forget to get instance
$module_instance = new Some_module;
$x = $module_instance->sum(1,2,3);
不便は私たちが今、このモジュールを初期化する必要があること、その事実です。 また、なぜ、シングルトンがPHPで役に立たないのか説明されているので、大量のトピックがあります。だから、それは悪い習慣でもあります。
このようなモジュールにはどのようなパターンを使用しますか?
ヒーローからアドバイスを受けることは、最悪の場合です。 - あなたの例はあまりにも抽象的で、ある実装をもう一方の実装よりも推奨する。明らかに、オブジェクトにイン・アウト関数を投げ込むことはあまり意味がありません。それらは単純な関数であるべきですが、静的クラスは機能のグループ化のための許容された回避策です(これ以上のものはありません)。特に、名前空間の構文の代替手段には耐えることができない場合。 – mario