2012-02-21 9 views
1

1つのデータベーステーブル(Google AppEngine + Objectify)にすべてのフィールドが必要なため、分割できない長いクラスがありました。私はすでに可能な限り埋め込みクラスを使用しています。クラスは主にゲッターとセッターとそれらの背後にあるロジックで構成されています。繰り返し継承を使用してクラスを小さくすることはできますか?

機能チャンクを得るために、私は繰り返し継承を使うことに決めました。今、それは次のようになります。

  • MyStoredModel extends
  • AbstractSettingsModel extends(親/子オブジェクトを扱う)
  • AbstractHierarchyModelextends
  • AbstractInformationModelextends
  • (タイトル、説明、...を保持しています)。.. ...
  • AbstractModel

すべてのクラスが何をしているのかが分かりやすく、テストするのが簡単だとも言えます。欠点は「継承連鎖」です。

これは悪い動作と見なされますか?クラスを小さくするためのより良い方法は何ですか?

答えて

3

私はこれらの構成を使用すると思います。したがって、モデルは、設定、階層、情報オブジェクトで構成されます。

トップレベルオブジェクトにすべてのセッター/ゲッターを含める必要があるということは、それらのコンポーネントクラスのそれぞれのセッター/ゲッターにデリゲートしますが、少なくとも、継承階層の複雑さを伴わずにそれらを別々のクラスに分割します。また、これらのコンポーネントクラスは自由に何かを継承することができます。

0

論理的な視点で継承が理にかなっている限り、私はそれがそうであると確信しています。

しかし、組成も良い考えです。

関連する問題