エンティティだけでなくフォームでも継承を使用できるため、次の構造を設計しました。
エンティティ
- クラスの人
- クラス教授は人を拡張します
- Class Student は Person を拡張します
フォームの種類
- クラス PersonType
- クラスProfessorTypeはPersonTypeを拡張します
- クラス StudentType は PersonType を拡張します
さて、私の問題はコントローラーにあります。すべてのサブエンティティに人物コントローラーを使用する必要があるのか、それともサブクラスごとに特定のコントローラーを作成する必要があるのか わかりません。
一般的なコントローラーを使用すると、エンティティ間で共通のロジックを使用するのに非常に役立ちます。さらに、新しいサブクラスが作成されるたびにコントローラー全体を追加する必要はありませんが、一方で、それぞれの特定のデータを処理するのは複雑です。 1。たとえば、「人」を読み込んで編集または表示したい場合、それに対応するフォームタイプとテンプレートを知る必要がありますが、そのレベルではこれは不可能です。ネストされた「if」を使用して人のクラスを取得し、正しいフォームタイプとテンプレート (ハードコード) を作成する必要があります。これは「動的」ではありません。
別のルートを使用して解決できるかもしれませんが、この問題の最善の (または少なくとも良い) 解決策を知りたいですか? コントローラーでも継承を使用する必要がありますか? どのように?