2009-05-10 1 views
4

XML設定から作成しているPHPクラスがいくつかあります。XMLからオブジェクト作成を外部化するか、コンストラクタからオブジェクトを作成する方が良いですか?

XMLからこれらのクラスを作成するか、XMLをコンストラクタに渡してクラスを作成するためのファクトリメソッドを持つ方が良いですか?

工場のアプローチでは、構造を使用法から分離し、代替実装をより簡単に行うことができるという利点がありますが、セッターを公開したり、オブジェクトの全体をコンストラクタに渡して状態を構成する必要があります。

これをさらに細かく考えると、XMLを渡すことでオブジェクトをトップダウンできますが、いくつかのオブジェクトを下にすると、その上にあるオブジェクトへの参照が必要になります。 2番目の方法は、よりボトムアップなものになります。

これについては、もう少しデザインパターンタイプの方法がありますか?

思考?

答えて

1

あなたは依存性注入フレームワークのいくつかの並べ替えが必要なような音。 SymphonyのDI hereの優れた概要があります。優れたDIフレームワークは、あまりにも多くの引数を必要とするコンストラクタのような問題を緩和できるクリーンでテスト可能なアーキテクチャを設計するのに役立ちます。

1

きれいなデザインのために、Foo以外のXMLからFooを作成するコードを完全に保つのが一番の方法ですが、何らかの工場で行うことをお勧めします。そうすれば、FooはJSON、CSVなどからデータを作成する方法を追加したい場合、同じままにすることができます。

関連する問題