Objektorientierte Analyse und Design (Vorlesung 6)

Klassen-Design

  • Substantivmethode zur Findung von Klassen, Attributen und Methoden
  • Klassen sind die Bausteine des Systems
  • Herausforderung: „Wie weiß man, wie man die Klassen „gut“ auftrennt?“
  • Beispiel: „Geld abheben“
    • Kunde ( nicht Teil des Use-Case )
    • Karte ( Klasse )
    • System ( nicht Teil des Use-Case )
    • PIN ( Attribut )
    • Betrag ( mögl. Attribut )
    • Konto ( Klasse )
    • Geld ( nicht Teil des Use-Case )

Attribute und Methoden identifizieren

  • Methode „geld_abheben ( betrag )“ definieren
  • Einzahlen und Auszahlen sind Methoden mit unterschiedlichen Vorgängen und Berechtigungsstrukturen

Vererbung

  • Subklassen verfügen über alle Eigenschaften der Superklassen
  • Überschreiben von Merkmalen ist erlaubt
  • Semantik von Operationen und Attributen dürfen nicht verändert werden
  • Werte dürfen eingeschränkt, aber nicht erweitert werden ( Platz im Speicher? )
  • Es muss eine „Ist ein“-Beziehung bestehen
    • Bsp.: „LKW ist keine Spezialisieurng von Rollstuhl
  • Beispiel: Membranpumpe-Attribute
    • Name
    • Hersteller
    • Gewicht
    • Preis
    • Ansaugdruck
    • Auslassdruck
    • Durchflussmenge
    • Membranmaterial

Notation

  • Beliebige Instanz einer Klasse „:Klasse“

Kapselung / Sichtbarkeit

  • + Public = Für Alle sichtbar
  • – Private = Für Niemanden sichtbar
  • # Protected = Nur für Unterklassen sichtbar
  • ~ Package = Nur für Klassen im gleichen Paket sichtbar

Constraints

  • Einschränkungen von Randbedingungen bei Vererbung
  • Complete ( Vollständig )
  • Incomplete ( nicht vollständig )
  • overlapping ( Ein Objekt kann mehreres sein )
  • disjoint ( Es darf nur eines sein ) 

Abstrakte Klassen

  • Kursive Namen oder „abstract“ kennzeichnen
Maximilian
Maximilian

Herzlich willkommen! Ich bin Max, ein Informatiker mit über 15 Jahren Berufserfahrung. Hier teile ich meine Leidenschaften, Erlebnisse und Perspektiven. Ich lade dich ein, gemeinsam mit mir auf eine Entdeckungsreise zu gehen.

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahren Sie, wie Ihre Kommentardaten verarbeitet werden.