実際に並列階層を回避する方法がわかりません。たとえば、さまざまなレベルでメモを作成/保存/編集する必要があるアプリケーションを考えてみましょう。これは Java Swing ベースのアプリケーションです。
ドメイン階層:
AbstractNote < MonthNote
< DayNote
< ProductNote
読み取り専用 View Hierarchy (特定のメモの詳細を表示する JTable を持つ JTabPane に表示)
AbstractNotePanel < MonthNotePanel
< DayNotePanel
< ProductNotePanel
メモ エディターの階層 (ユーザーがテーブル行の特定のメモをクリックすると表示されます。
AbstractNoteEditorDialog < MonthNoteEditorDialog
< DayNoteEditorDialog
< ProductNoteEditorDialog
これを回避する方法の 1 つは、ビジター パターンを使用することです。here しかし、これは私の状況には当てはまらないようです。
一般的なコードのほとんどが抽象クラスにあるため(テンプレートメソッドパターンを適用する)、上記の設計に非常に満足しています。YearNote などの新しいタイプのメモを作成する必要がある場合は、YearNotePanel と YearNoteEditorDialog を並行して作成する必要があります。何よりも、デザインでコードの匂いを避けたいと思っています。私のコードがモジュールのままになるように、上記のシナリオで別の設計を提案してください。ありがとう