1

エンティティだけでなくフォームでも継承を使用できるため、次の構造を設計しました。

エンティティ

  • クラスの人
  • クラス教授は人を拡張します
  • Class Student は Person を拡張します

フォームの種類

  • クラス PersonType
  • クラスProfessorTypeはPersonTypeを拡張します
  • クラス StudentType は PersonType を拡張します

さて、私の問題はコントローラーにあります。すべてのサブエンティティに人物コントローラーを使用する必要があるのか​​、それともサブクラスごとに特定のコントローラーを作成する必要があるのか​​ わかりません。

一般的なコントローラーを使用すると、エンティティ間で共通のロジックを使用するのに非常に役立ちます。さらに、新しいサブクラスが作成されるたびにコントローラー全体を追加する必要はありませんが、一方で、それぞれの特定のデータを処理するのは複雑です。 1。たとえば、「人」を読み込んで編集または表示したい場合、それに対応するフォームタイプとテンプレートを知る必要がありますが、そのレベルではこれは不可能です。ネストされた「if」を使用して人のクラスを取得し、正しいフォームタイプとテンプレート (ハードコード) を作成する必要があります。これは「動的」ではありません。

別のルートを使用して解決できるかもしれませんが、この問題の最善の (または少なくとも良い) 解決策を知りたいですか? コントローラーでも継承を使用する必要がありますか? どのように?

4

1 に答える 1

2

私たちはあなたの申請についてもっと[もっと]知る必要があります.

とにかく、それは本当にコントローラーの目的に依存します。共通の祖先コントローラーを定義してから、前者を拡張する子コントローラーを定義し、その中で必要なメソッドを再定義できます。

もちろん、アクションごとに特定のルートが必要になります。

于 2012-11-14T17:34:03.590 に答える