So entscheiden Sie, ob IS A oder HAS A Relation verwendet wird

7
%Vor%

Angenommen, ich habe eine übergeordnete Klasse, anhand welcher Parameter sollten wir entscheiden, was zu verwenden ist ?? Ob ist ein oder hat eine Beziehung ??

HAS - A

%Vor%

oder

%Vor%     
Pawan 18.06.2011, 10:29
quelle

4 Antworten

17

Hängt von der logischen Beziehung ab. Es muss nur Sinn machen.

Beispiel:

Sagen wir, Sie haben Tierklassen.
Also haben Sie diese Klassen: Tier, Hund, Katze, Leopard, Fell, Füße

Katze und Hund IS A Tier.
Leopard IST A Cat.
Tier HAT A Pelz, Füße.

Auf den Punkt gebracht:

IS Eine Beziehung bedeutet, dass Sie die Funktionalität der Basisklasse erben und erweitern.
HAS Eine Beziehung bedeutet, dass die Klasse eine andere Klasse verwendet als Mitglied.

    
Yochai Timmer 18.06.2011, 10:37
quelle
10

Es gibt vier Arten von Beziehungen:

  • Verallgemeinerung (IS A) : Dies wird wie oben mit Vererbung implementiert. Es wird verwendet, wenn Klasse A die gleiche Funktion von B hat und Sie weitere Funktionen hinzufügen möchten. Sie erweitern einfach B und fügen die neuen Funktionen hinzu.
  • Aggregation (HAS A) : Dies ist eine etwas schwächere Beziehung als die Generalisierung. Sie verwenden diese Beziehung, wenn das Objekt von A Objekte von B besitzt oder aus Objekten von B besteht (möglicherweise neben anderen Objekten anderer Klassen). Der erste Typ wird als gemeinsam genutzte Aggregation bezeichnet, der zweite als Komposition. Bei der Aggregation und Zusammensetzung steuert gewöhnlich ein Objekt das Leben des anderen Objekts (es instanziiert es und zerstört es, wie es benötigt).
  • Assoziation : In der Assoziation wissen die Klassen einfach voneinander, also ist es schwächer als Aggregation. Die Objekte kontrollieren nicht das Leben des anderen.
  • Verwendung : Es ist die schwächste Relation von zwei Klassen und es bedeutet einfach, dass eine Klasse als Typ in einem Methodenparameter oder intern im Code verwendet wird.

    In Ihrem Beispiel sollte es Aggregation (HAS A) sein, wenn A ein Feld vom Typ B hat. Aber wenn es nur eine Instanz von B erzeugt, die intern in Code verwendet wird, und das Objekt aus dem Speicher entfernt wird, wenn der Bereich endet, dann Es ist weder IS A noch HAS A. Es ist nur eine Nutzungsbeziehung.

M.Sameer 18.06.2011 10:48
quelle
1

Einfach ausgedrückt:

  • "ist ein" repräsentieren die Vererbung / erweitert
  • "hat ein" repräsentiert die Delegation / Assoziation

zum Beispiel:

  • Haus ist ein Gebäude (Vererbung)
  • Haus hat eine Tür (n) (Verein)

Hier ist eine der besten Quellen, die ich zum Verständnis von OOP verwendet habe: Ссылка (Teil 6 und 10)

    
Yeo 18.06.2011 10:53
quelle
0

is-a ist zum Beispiel ein Hund ist ein Tier oder eine Katze ist ein Tier oder Sie ist wie "eine Person ist das - Art einer Person ". Is-a-Beziehungen haben Eigenschaften anderer Objekte.

Die has-a Beziehung ist wie folgt: Ein Objekt hat seine eigenen Eigenschaften, zum Beispiel hat Fisch Kiemen oder Hosen Taschen ... so etwas.

    
Tushar 01.04.2018 07:50
quelle

Tags und Links