Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Segmentierung und Aggregation | Überblick Über Die Kapselung
C++ OOP
course content

Kursinhalt

C++ OOP

C++ OOP

1. Grundlagen der OOP in C++
2. Konstruktoren und Destruktoren
3. Überblick Über Die Kapselung
4. Überblick Über Vererbung
5. Überblick Über Polymorphismus

book
Segmentierung und Aggregation

Bei der Entwicklung wartbarer und flexibler Software gibt es im Prozess, insbesondere in der objektorientierten Programmierung, viele Aspekte zu berücksichtigen. Komposition und Aggregation sind grundlegende Konzepte, die die Erstellung komplexer Systeme aus einfacheren Komponenten ermöglichen und Teil des Kapselungsparadigmas sind.

Komposition

Komposition ist eine Entwurfstechnik, bei der eine class objects anderer classes als Member-Variablen enthält. Diese Member sind wesentliche Bestandteile der enthaltenden class und stehen in einer starken Besitzbeziehung. Wird das enthaltende object zerstört, werden auch seine zusammengesetzten Teile zerstört. Zum Beispiel:

Car.h

Car.h

Engine.h

Engine.h

copy
123456789101112
#include "Engine.h" class Car { public: void Start() { engine.Start(); // Start the engine std::cout << "Car started" << std::endl; } private: Engine engine; // Engine object composition };

Die Klasse Car setzt sich aus einem Engine-Objekt zusammen. Wenn ein Car-Objekt erstellt wird, erzeugt es automatisch eine Instanz von Engine als Teil seiner Komposition.

Aggregation

Aggregation ist eine weitere Form der object-Komposition, bei der eine class ein object anderer classes enthält, jedoch besteht zwischen den enthaltenen Instanzen eine schwächere Beziehung als bei der Komposition. Bei der Aggregation können die enthaltenen Mitglieder-classes unabhängig existieren und möglicherweise von mehreren classes gemeinsam genutzt werden.

Car.h

Car.h

Engine.h

Engine.h

copy
123456789101112131415
#include "Engine.h" class Car { public: Car(Engine* engine) : engine(engine) {} void Start() { engine->Start(); // Start the engine std::cout << "Car started" << std::endl; } private: Engine* engine; // Engine object aggregation };

Die Klasse Car aggregiert ein Engine-Objekt mittels eines Zeigers. Die Klasse Car besitzt das Engine-Objekt nicht; sie hält lediglich eine Referenz darauf. Dadurch kann die Engine-Instanz unabhängig vom Car-Objekt existieren und bei Bedarf von mehreren Instanzen gemeinsam genutzt werden.

Auswahl zwischen Komposition und Aggregation

Bei der Entwicklung von Softwaresystemen ist es wichtig, sorgfältig zu überlegen, ob Komposition oder Aggregation verwendet werden sollte, abhängig von den Beziehungen zwischen Klassen und Objekten.

Im Kontext der Klassen Car und Engine wäre die Verwendung von Komposition angemessener. Jedes Auto hat in der Regel seinen eigenen Motor, und der Motor ist ein integraler Bestandteil des Autos selbst. Außerdem wird dadurch verhindert, dass der Engine von mehreren objects-Objekten gemeinsam genutzt oder wiederverwendet wird, was ebenfalls sinnvoll ist.

question mark

Welches der folgenden Beispiele ist eine Aggregation?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 5

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

course content

Kursinhalt

C++ OOP

C++ OOP

1. Grundlagen der OOP in C++
2. Konstruktoren und Destruktoren
3. Überblick Über Die Kapselung
4. Überblick Über Vererbung
5. Überblick Über Polymorphismus

book
Segmentierung und Aggregation

Bei der Entwicklung wartbarer und flexibler Software gibt es im Prozess, insbesondere in der objektorientierten Programmierung, viele Aspekte zu berücksichtigen. Komposition und Aggregation sind grundlegende Konzepte, die die Erstellung komplexer Systeme aus einfacheren Komponenten ermöglichen und Teil des Kapselungsparadigmas sind.

Komposition

Komposition ist eine Entwurfstechnik, bei der eine class objects anderer classes als Member-Variablen enthält. Diese Member sind wesentliche Bestandteile der enthaltenden class und stehen in einer starken Besitzbeziehung. Wird das enthaltende object zerstört, werden auch seine zusammengesetzten Teile zerstört. Zum Beispiel:

Car.h

Car.h

Engine.h

Engine.h

copy
123456789101112
#include "Engine.h" class Car { public: void Start() { engine.Start(); // Start the engine std::cout << "Car started" << std::endl; } private: Engine engine; // Engine object composition };

Die Klasse Car setzt sich aus einem Engine-Objekt zusammen. Wenn ein Car-Objekt erstellt wird, erzeugt es automatisch eine Instanz von Engine als Teil seiner Komposition.

Aggregation

Aggregation ist eine weitere Form der object-Komposition, bei der eine class ein object anderer classes enthält, jedoch besteht zwischen den enthaltenen Instanzen eine schwächere Beziehung als bei der Komposition. Bei der Aggregation können die enthaltenen Mitglieder-classes unabhängig existieren und möglicherweise von mehreren classes gemeinsam genutzt werden.

Car.h

Car.h

Engine.h

Engine.h

copy
123456789101112131415
#include "Engine.h" class Car { public: Car(Engine* engine) : engine(engine) {} void Start() { engine->Start(); // Start the engine std::cout << "Car started" << std::endl; } private: Engine* engine; // Engine object aggregation };

Die Klasse Car aggregiert ein Engine-Objekt mittels eines Zeigers. Die Klasse Car besitzt das Engine-Objekt nicht; sie hält lediglich eine Referenz darauf. Dadurch kann die Engine-Instanz unabhängig vom Car-Objekt existieren und bei Bedarf von mehreren Instanzen gemeinsam genutzt werden.

Auswahl zwischen Komposition und Aggregation

Bei der Entwicklung von Softwaresystemen ist es wichtig, sorgfältig zu überlegen, ob Komposition oder Aggregation verwendet werden sollte, abhängig von den Beziehungen zwischen Klassen und Objekten.

Im Kontext der Klassen Car und Engine wäre die Verwendung von Komposition angemessener. Jedes Auto hat in der Regel seinen eigenen Motor, und der Motor ist ein integraler Bestandteil des Autos selbst. Außerdem wird dadurch verhindert, dass der Engine von mehreren objects-Objekten gemeinsam genutzt oder wiederverwendet wird, was ebenfalls sinnvoll ist.

question mark

Welches der folgenden Beispiele ist eine Aggregation?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 5
some-alt