私は電気装置を表すクラスを持っています(クラス1と呼んでいます)。また、複数のデバイスを表すクラスもあります。本質的には、一緒に結合されたデバイスの配列(クラス2)です。継承と集約の両方で2つのオブジェクトを関連付けることは、プログラミングの習慣としては悪いですか?
明らかに、クラス1のインスタンスがクラス2に含まれているという集約関係を持つのは理にかなっています。しかし、私の使用法では、クラス2をクラス1の大きなインスタンスとして考えるのが一般的です電池のバンクは単一の電池と考えることもできる)。
これは、私はまた、いくつかの追加のものを追加しているときに、クラス2、クラス1のメソッドと属性のすべてを再利用することを意味します。私の考えでは、これは継承関係も意味をなさないことを意味しますが、属性の一部は、ユーザが定義するのではなく、埋め込み親オブジェクトから派生するものです。
よくあることですか?私はプログラミングが新しくなっていますが、親クラスと子クラスの間に2つの別々の行があるUML図は見ていません。私のアプローチはプログラミングの練習が悪いのですか?そのような関係をよりよく表現していますか?
可能であれば、継承よりも集計を優先します。この場合、class2を落としてclass1を内部で使用することができます。ちょうど木のように。私は集約と同時に相続の必要性を持っていませんでした。 –