1

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

関数チャンクを取得するために、繰り返し継承を使用することにしました。次のようになります。

  • MyStoredModel extends
  • AbstractSettingsModel extends
  • AbstractHierarchyModel(親子オブジェクトの扱い)extends
  • AbstractInformationModel(タイトル、説明などを保持)extends
  • .....
  • AbstractModel

すべてのクラスが何をしているかを簡単に確認できます。また、テストも簡単だと思います。欠点は「継承チェーン」です。

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

4

2 に答える 2

4

これらにコンポジションを使用することを考えます。したがって、モデルは設定、階層、情報オブジェクトで構成されます。

最上位オブジェクトにすべてのセッター/ゲッターを含める必要があることを意味します。これにより、これらの各コンポーネントクラスのそれぞれのセッター/ゲッターに委任されますが、少なくともそれらのすべての処理を個別のクラスに分離できます継承階層の複雑さはありません。また、これらのコンポーネント クラスが好きなものから自由に継承できるようになったことも意味します。

于 2012-02-21T12:16:18.697 に答える
0

継承が論理的な観点から理にかなっている限り、それが本来あるべき姿だと確信しています。

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

于 2012-02-21T12:16:26.160 に答える