Franz Pucher / HIM0Board

You are viewing an older revision! See the latest version

HasA versus IsA

HasA (hat ein): Composition (Komposition, Aggregation)

Beschreibt die Beziehung zwischen einem Ganzen und seinen Teilen.

/media/uploads/fpucher/hasa.jpg

Dieses UML-Diagramm entsricht dem folgden UML-Diagramm wobei die Klasse DigitalOut instanziiert wird:

/media/uploads/fpucher/hasa_attribut.jpg

Es wird also eine Membervariable (Attribut) des Datentypes DigitalOut hinzugefügt (MyLed hat ein DigitalOut-Pin). Allerdings wird erst die Adresse des eigentlichen Zieles - auf eine Klasse DigitalOut – erzeugt und im parametrisierten Konstruktor - selber Name wie Klasse - mit einem Pin-Namen als Parameter wird ein neues DigitalOut Objekt led1 mit Pin ld1 erzeugt:

MyLed(PinName ld1){
    led1 = new DigitalOut(ld1);
};

Methode: Der Aufruf der Methode write() in der Klasse DigitalOut erfolgt über den Zeiger led1 entweder mit direktem Zugriff mit „.“ (*led1).write(1) – Klammern wegen der Operator Priorität [http://de.cppreference.com/w/cpp/language/operator_precedence |C++ Operator Precedence] oder besser indirekter Zugriff über den Zeigeroperator „->“ Zeiger auf Element:

   void LedOn() {
        led1->write(1);
    }

All wikipages