Staticは悪いですが、Factoryパターンはどうですか?
私はTDDプロジェクトに参加しているので、この種の開発に関係する優れた慣行に可能な限りこだわります。それらの1つは、静的およびグローバルを可能な限り回避することです。 私はこの問題に直面しています。「オプション」(追加の「マイクロ記事」)をリンクできるオブジェクト「記事」があります。 私はすべてが非常に切り離されているため、基本的にオブジェクトごとに1つのクエリを作成する必要があるため、非生産的であるか、あまり多くのクエリを生成しない良いアプローチを持つ方法を理解することはできません。 私の実際の観点から、3つのオプションがあります。 1)記事内のビルド: class Article { //[...] public function getArrOption(){ //Build an array of Options instance. //return an array of Options. } } プロ:まっすぐ進む 定数:保守性:articleオブジェクトには、Optionオブジェクトの構築ロジックが含まれるようになりました。これはおそらくコードの重複につながります。 2)optionFactoryを使用する class Article { //[...] public function getArrOption(){ return OptionFactory::buildFromArticleId($this->getId()); } } プロ:ロジックの構築はArticleクラスの外にありません Const:「静的なモックは難しい」というルールを破り、Articleクラスのテストを難しくしています。 3)すべてのロジックを分離します。 //Build the array of Option instance in a …