1

重複の可能性:
継承と集約

このサイトのパートナーは、解決策として「継承よりも集約」が必要だと言いました。

私はそれぞれが何を考えているかを調査しましたが、「継承」ですか?それは私の疑問です。誰かが私にそれが何を意味するかの例を示すことができますか?

前もって感謝します。

4

3 に答える 3

2

これは、あるクラスが別のクラスから継承するのではなく、別のクラスのインスタンスを含む必要があることを意味します。

継承の例

class Engine
{
}

class vehicle extends Engine
{
}

集計例

class Engine
{
}

class Vehicle
{
Engine powerplant;
}

私たちの教科書に、貧弱な継承の例の危険性についての記事を書きました。私は、連邦航空局が航空機とその機能を分類する方法に基づいて規制を細分化する方法に役立つ例を見つけました.

于 2012-06-29T14:25:36.593 に答える
1

コメントで述べたように、可能な場合は継承の代わりに集約を使用することを意味します。説明は、継承よりも構成を優先しますか?に記載されています。

順応性が高く、後で変更しやすいため、継承よりも構成を優先しますが、常に構成するアプローチは使用しないでください。コンポジションを使用すると、依存性注入/セッターを使用してその場で動作を簡単に変更できます。ほとんどの言語では複数の型から派生させることができないため、継承はより厳格です。

知りたい場合は合成と集計の違い。

于 2012-06-29T14:30:26.083 に答える
1

集約は、継承を使用する場合よりもエラーが発生しにくい (継承により、コードの保守が難しくなり、理解しにくくなる可能性がある)

また、クラスを継承するときに、そのすべてのパブリック メンバーを派生クラスのクライアントに公開することもできます (代わりに、集約を使用してフィールドをプライベートにして、クライアントがそのオブジェクトにアクセスするのを制限できます)。

于 2012-06-29T14:30:56.397 に答える