私がモデルを持っていて、それを小、中、大と呼ばれるDog
3つのうちの1つに選択できる場合。Types
これらのタイプにロジックを入れる場合、これらのタイプ自体をモデルにする必要がありますか?モデルデザインはどうなりますか?
質問する
58 次
2 に答える
2
Small、Medium、Large のそれぞれに独自のメソッドがありますが、共通の属性を共有している場合は、ベースの Dog モデルを作成し、各サイズのサブクラスを作成できますclass SmallDog < Dog
。type
「SmallDog」などの値を受け入れる列を追加して、dogs テーブルで単一テーブル継承を使用します。
于 2012-07-27T14:00:08.957 に答える
2
さまざまなタイプのすべてに共通のインターフェイスがありますが、ロジックが異なるだけですか?
インターフェイスが同じである場合 (つまり、すべて同じ関数定義を持っている場合)、元の Dog モデルを拡張し、Dog の作成を処理する何らかの種類のファクトリ クラスを持つさまざまな種類の犬のそれぞれにサブクラスを用意するだけです。モデルを作成し、犬の種類に基づいて適切なクラスを自動的に選択します。Dog 型に共通のインターフェイスを持つファクトリ クラスを使用することで、アプリケーションの残りの部分で Dog の型を気にする必要がなくなり、ファクトリ クラスを変更するだけで新しい型を自由に追加/削除できます。
于 2012-07-27T14:06:56.037 に答える