私はDelphi 2009で軽量mvpフレームワークを実装しています。MVP:ビューとモデル以外のコンストラクタのパラメータ?
ビューはパッシブですが、(インターフェイスプロパティを介して)データバインディングをサポートしています。
私はジレンマに直面している: 私はいくつかの非常によく似たビュー/プレゼンター/モデルトライアド、すなわちをしました:
注文フォームと顧客フォーム=動作とロジックは同じですが、データバインディングのためのデータソースがあります異なるとフォームのタイトルも。データソースは私のすべてのモデルにとって共通のプロパティなので、フォームのタイトルを設定するには問題はありません。私はプレゼンターでハードコードしますInitView
メソッド
すべてがうまくいきますが、私がいくつかの単純なmvpトライアドを非常に似ている状況。私はそれをリファクタリングしたいが、その場合、いくつかのパラメータをmvpコンストラクタに渡さなければならない。
これまでのところ私はそのようにやっている:
- はプレゼンターを作成し、実際にはコンストラクタで
をモデルとビューを注入モデル
- 持つ:、私は選択肢に直面していますいくつかの非常に汎用ビュー/プレゼンターは、そのようにそれらを使用しますが、コンストラクタ
- いくつかのビュー/プレゼンターのスーパークラスを持つに1つのまたは2のパラメータを注入し、そこからすべての私の同様の図/プレゼンターを導出し、メソッドのオーバーライドには、いくつかの特定の値を設定します。
あなたは私にいくつかのヒント/アドバイスを与えることができますか?
(私は非常に明確ではないよ場合は申し訳ありません)
タイガー、あなたの答えに感謝します。あなたの解決策は私の2番目のようです。私はそれがそれを行うためのきれいな方法であることに同意しますが、フォームのタイトルやラベルをフォームに設定するためにいくつかのサブクラスを作成することは、私が今見ているものから少し残念です。ご協力いただきありがとうございます。 – Fred