この質問に PHP というタグを付けましたが、これはデザイン パターン、つまりファクトリ パターンに関する質問です。PHP は、私が使用しているプログラミング言語です。
私は、不動産業者 (アメリカの従兄弟の「不動産」) の Web サイトを構築しています。私はProperty
クラスを持っていますが、これを拡張する他のクラス、つまりLettingProperty
、CommercialProperty
そのタイプのプロパティに固有のフィールドを持つクラスがあります。
私のコントローラーでは、特定のプロパティを表示したいと考えています。プロパティ ID をパラメーターとして渡すので、これは簡単です。私のアプローチは、関連するクラスのインスタンスとしてプロパティを返すファクトリ クラスを作成することです。たとえば、ID が 1 の物件が賃貸物件の場合、 のインスタンスを返しますLettingProperty
。それが単なる標準的な「販売用」物件である場合は、 のインスタンスですProperty
。
これについてどうすればいいですか?私はPropertyFactory
クラスを作成し、 というメソッドを実装buildFromId()
しましたが、以下のエレガントなソリューションを作成するのに苦労しました:
properties
データベース テーブルで関連レコードを検索する- 任意の s を実行します (つまり、 (外部キー: )
LEFT JOIN
からの関連データを結合させたままにするプロパティの場合)letting_properties
property_id
- 結果のデータを、対応するクラスのインスタンスとして返します
ファクトリ アプローチは、このシナリオの正しい設計パターンですか? もしそうなら、どうすれば上記について行くことができますか?