OOAD - Objektmodell



Das Objekt modell visualisiert die Elemente in einer Software-Anwendung im Hinblick auf die Objekte. In diesem Kapitel werden wir in die grundlegenden Konzepte und Terminologien der objektorientierten Systemen zu suchen.

Objekte und Klassen

Die Konzepte von Objekten und Klassen sind untrennbar mit einander verbunden und bilden die Grundlage der objektorientierten Paradigma.

Objekt

Ein Objekt ist eine reale Element in einer objektorientierten Umgebung, die eine physikalische oder eine konzeptionelle Existenz haben können. Jedes Objekt verfügt über:

  • Identität, die es von anderen Objekten im System unterscheidet.

  • Staat dass bestimmt die charakteristischen Eigenschaften eines Objekts sowie die Werte der Eigenschaften dass die Objekt hält.

  • Ein Verhalten, das von außen sichtbare Aktivitäten durch ein Objekt im Hinblick auf Veränderungen in seinem Zustand durchgeführt stellt.

Gegenstände können nach den Anforderungen der Anwendung zu modellieren. Ein Objekt kann eine physische Existenz haben, wie ein Kunde, ein Auto, etc.; oder ein immaterieller konzeptionelle Existenz, wie ein Projekt, einen Prozess, etc.

Klasse

Eine Klasse repräsentiert eine Sammlung von Objekten mit gleichen charakteristischen Eigenschaften, die gemeinsame Verhalten zeigen. Es gibt die Blaupause oder Beschreibung der Objekte, die daraus erzeugt werden kann. Erzeugung eines Objekts als Mitglied einer Klasse heißt Instanziierung. Somit ist Objekt eine Instanz einer Klasse.

Die Bestandteile einer Klasse sind:

  • Ein Satz von Attributen für Objekte, die sind aus der Klasse instanziert werden. Im Allgemeinen verschiedene Objekte einer Klasse haben einen Unterschied in den Werten der Attribute. Attribute werden oft als Klassendaten bezeichnet.

  • Eine Reihe von Operationen, die das Verhalten der Objekte der Klasse darzustellen. Die Vorgänge werden auch als Funktionen oder Methoden bezeichnet.

Beispiel

lassen uns sie betrachten eine einfache Klasse, Kreis, die die geometrische Figur Kreis in einem zweidimensionalen Raum darstellt. Die Attribute dieser Klasse sind wie folgt gekennzeichnet werden:

  • x-Koord, zu bezeichnen x-Koordinate des Mittel
  • y–Koord, zu bezeichnen y-Koordinate des Mittel
  • ein, um den Radius des Kreises bezeichnen

Einige der Operationen können wie folgt definiert werden:

  • findArea () Methode, um Fläche zu berechnen
  • findCircumference (), Methode zur Berechnung Umfang
  • scale (), die Methode zu erhöhen oder verringern Sie den Radius

Während der Instanziierung, Werte für zumindest einige der Attribute zugeordnet. 2, y-Koordinaten zum Runterladen:: 3, und a: 4, um seinen Zustand darzustellen, wenn wir ein Objekt erstellen my_circle können wir Werte wie x-Koord zuordnen. Wenn nun der Betrieb Skala () auf my_circle mit einem Skalierungsfaktor von 2 durchgeführt wird, der Wert der Variablen a wird zu 8. Dieser Vorgang bewirkt eine Veränderung im Zustand des my_circle, dh das Objekt ein bestimmtes Verhalten zeigten.

Encapsulation und Verstecken von Daten

Encapsulation

Encapsulation ist der Prozess der Bindung beide Attribute und Methoden zusammen in einer Klasse. Durch Verkapselung können die internen Details einer Klasse von außen verborgen. Es erlaubt die Elemente der Klasse, die von außen nur durch die Schnittstelle von der Klasse bereitgestellt zugegriffen werden.

Daten Verstecken

Regel eine Klasse ist so ausgelegt, daß seine Daten (Attribute) nur durch ihre Klassenmethoden aufgerufen und direkten Zugriff von außen isoliert werden. Dieser Prozess der isolierenden Daten eines Objekts wird als Daten Versteck oder Informationen versteckt.

Beispiel

In der Klasse Kreis, können Daten versteckt, indem sie Attribute unsichtbar von außerhalb der Klasse und um zwei weitere Methoden, um die Klasse für den Zugriff auf Klassendaten, eingearbeitet werden und zwar:

  • setValues ​​(), Methode, um zuweisen Werte die x-Koordinaten zum Runterladen, y-Koordinaten zum Runterladen und ein
  • getValues ​​() Methode, um abrufen Werte von x-Koordinaten zum Runterladen, y-Koordinaten zum Runterladen und ein

Hier die privaten Daten des Objektes my_circle kann nicht direkt durch eine Methode, die nicht innerhalb der Klasse Kreis eingekapselt zugegriffen werden. Es sollte stattdessen zugegriffen werden durch die Methoden setValues ​​() und getValues ​​().

Message Passing

Jede Anwendung erfordert eine Reihe von Objekten interagieren in einer harmonischen Weise. Objekte in einem System können miteinander mit Message Passing kommunizieren. Angenommen, ein System hat zwei Objekte: obj1 und obj2. Das Objekt obj1 eine Nachricht sendet auf Objekt obj2, wenn obj1 obj2 um eine seiner Methoden ausführen möchte.

Die Features von Message Passing sind:

  • Nachricht, die zwischen zwei Objekten ist in der Regel unidirektional.
  • Message Passing können alle Interaktionen zwischen Objekten.
  • Nachrichtenweitergabe beinhaltet im Wesentlichen aufrufKlassenMethoden.
  • Objekte in verschiedenen Prozessen können in Message Passing beteiligt werden.

Vererbung

Die Vererbung ist der Mechanismus, der neue Klassen aus vorhandenen Klassen erstellt werden ermöglicht durch die Erweiterung und ihre Fähigkeiten. Die bestehenden Klassen werden die Basisklassen / Elternklassen / Super-Klassen aufgerufen, und die neuen Klassen werden die abgeleiteten Klassen / Kind-Klassen / Unterklassen aufgerufen. Die Unterklasse kann erben oder leiten die Attribute und Methoden der Superklasse (n) vorgesehen, dass die Super-Klasse ermöglicht so. Daneben kann der Unterklasse eine eigene Attribute und Methoden hinzufügen und kann jede der Super-Klassenmethoden zu ändern. Vererbung definiert eine "ist - ein". Beziehung

Beispiel

Von einer Klasse Säugetier, kann eine Reihe von Klassen, wie Mensch, Katze, Hund, Kuh, usw. abgeleitet werden Menschen, Katzen, Hunde und Kühe haben alle die unterschiedlichen Eigenschaften von Säugetieren. Zusätzlich hat jede ihre eigenen besonderen Eigenschaften. Es kann gesagt werden, daß eine Kuh "ist - a". Säugers

Arten der Vererbung:

  • Single Vererbung :. Eine Unterklasse leitet sich von einer einzigen Superklasse

  • Fachvererbung :. Eine Unterklasse leitet sich von mehr als einem super-Klassen

  • Mehrstufige Vererbung :. Eine Unterklasse leitet sich von einer Superklasse, die wiederum von einer anderen Klasse abgeleitet und so weiter

  • Hierarchische Vererbung : Eine Klasse hat eine Reihe von Unterklassen von denen jeder nachfolgenden Unterklassen haben, weiterhin für eine Reihe von Ebenen, um eine Baumstruktur zu bilden

  • Hybrid Vererbung : Eine Kombination aus mehreren und mehrstufige Vererbung, um so eine Gitterstruktur bilden

Die folgende Abbildung zeigt die Beispiele für verschiedene Arten der Vererbung.

Erbschaft

Polymorphism

Polymorphismus ist ursprünglich ein griechisches Wort, das die Fähigkeit, mehrere Formen annehmen bedeutet. In objektorientierten Paradigma impliziert Polymorphismus mit Operationen in unterschiedlicher Weise, je nach dem Fall werden sie beim Betätigen. Polymorphismus ermöglicht Objekte mit unterschiedlichen internen Strukturen, um eine gemeinsame externe Schnittstelle haben. Polymorphismus ist besonders effektiv bei der Umsetzung Vererbung.

Beispiel

lassen uns sie betrachten zwei Klassen, Kreis und Quadrat, jedes mit einem Verfahren findArea (). Wenn der Name und die Zwecke der Verfahren der Klassen gleich sind, das heißt, die interne Implementierung des Verfahrens zur Berechnung der Fläche für jede Klasse. Wenn ein Objekt der Klasse Kreis ruft seine findArea () -Methode, die Operation findet die Fläche des Kreises ohne Konflikt mit dem findArea () -Methode des Square-Klasse.

Generalisierung und Spezialisierung

Generalisierung und Spezialisierung stellen eine Hierarchie von Beziehungen zwischen den Klassen, in denen Unterklassen erben von super-Klassen.

Generalisierung

In der Generalisierung, die gemeinsamen Eigenschaften von Klassen werden kombiniert, um eine Klasse in einer höheren Hierarchieebene, dh zu bilden, werden Unterklassen kombiniert werden, um eine verallgemeinerte Superklasse zu bilden. Es stellt ein "ist - a - Art - von" Beziehung. Zum Beispiel, "Auto ist eine Art von Landfahrzeug" oder "Schiff ist eine Art von Wasserfahrzeug ".

Spezialisierung

Spezialisierung ist der umgekehrte Prozess der Verallgemeinerung. Hier werden die charakteristischen Merkmale der Gruppen von Gegenständen verwendet, um spezialisierte Klassen von vorhandenen Klassen zu bilden. Es kann gesagt werden, dass die Unterklassen sind die spezialisierte Versionen der Superklasse.

Die folgende Abbildung zeigt ein Beispiel der Generalisierung und Spezialisierung.

Spezialisierung

Links und Assoziierungs

Link

Ein Link stellt eine Verbindung, über die ein Objekt arbeitet mit anderen Objekten. Rumbaugh hat es als "eine physische oder begriffliche Verbindung zwischen den Objekten" definiert. Über einen Link kann ein Objekt die Methoden aufrufen oder navigieren Sie durch ein anderes Objekt. Ein Link zeigt die Beziehung zwischen zwei oder mehr Objekten.

Assoziation

Assoziation ist eine Gruppe von Verbindungen, die gemeinsame Struktur und allgemeines Verhalten. Verband zeigt die Beziehung zwischen den Objekten aus einem oder mehreren Klassen. Ein Link kann als Instanz einer Assoziation definiert werden.

Degree eines Assoziierung

Grad von einer Vereinigung bezeichnet die Anzahl der Klassen in einer Verbindung beteiligt. Degree kann unären, binären oder ternären.

  • Ein unären Beziehung connects Objekte der gleichen Klasse.

  • Ein binäre Beziehung connects Objekte der beiden Klassen.

  • Ein ternären Beziehung connects objekte aus drei oder mehr Klassen.

Kardinalitäts verhältnisse der Verbände

Kardinalität eines binären Verband bezeichnet die Anzahl der Instanzen Teilnahme die an einer Vereinigung. Es gibt drei Arten von Kardinalitäts verhältnisse, nämlich:

  • One-to-One: Ein einzelnes Objekt der Klasse A ist mit einem einzigen Objekt der Klasse B zugeordnet

  • One-to-Many: Ein einzelnes Objekt der Klasse A wird mit vielen Objekten der Klasse B zugeordnet

  • Many-to-Many: Ein Objekt der Klasse A kann zugeordnet mit vielen Objekten der Klasse B und umgekehrt ein Objekt der Klasse B kann mit vielen Objekten der Klasse A zugeordnet.

Aggregation oder Komposition

Aggregation oder Zusammensetzung ist eine Beziehung zwischen Klassen, mit dem eine Klasse aus einer beliebigen Kombination von Objekten anderer Klassen vorgenommen werden. Es können Objekte direkt innerhalb des Körpers andere Klassen. Die Aggregation wird als "part-of" oder "hat-ein" -Beziehung bezeichnet, mit der Fähigkeit, vom Ganzen zu seinen Teilen zu navigieren. Ein Aggregat-Objekt ist ein Objekt, das von einem oder mehreren anderen Objekten zusammengesetzt ist.

Beispiel

In der Beziehung ", ein Auto hat-einen Motor", ist Auto das ganze Objekt oder das Aggregat, und der Motor ist ein "Teil-von" Auto. Aggregation kann bedeuten:

  • Physikalische Contain: Beispielsweise wird ein Computer ist komponiert von Monitor, CPU, Maus, Tastatur, und so weiter

  • Konzeptionelle Contain : Beispiel, hat ein Aktionär ein Aktien

Vorteile von Object Model

Nun, da wir durch die Kernkonzepte in Bezug auf Objektorientierung gegangen, wäre es sinnvoll zu beachten, die Vorteile, dass dieses Modell zu bieten hat.

Die Vorteile der Verwendung des Objektmodells sind:

  • Es hilft bei der schnelleren Entwicklung von Software.

  • Es ist leicht zu pflegen. Angenommen, ein Modul einen Fehler entwickelt, so kann ein Programmierer, dass bestimmte Modul zu befestigen, während die anderen Teile der Software sind immer noch in Betrieb.

  • Es unterstützt relativ problemlose Upgrades.

  • Es ermöglicht die Wiederverwendung von Objekten, Designs und Funktionen.

  • Es verringert Entwicklungsrisiken, insbesondere bei der Integration komplexer Systeme.

Advertisements