Objektorientiertes Design

Objektorientiertes Design (OOD) ist der Planungsprozess a System des interagierenden Objekts zum Zweck der Lösung eines Softwareproblems. Es ist ein Ansatz zu Software-Design.

Überblick

Ein Objekt enthält eingekapselt Daten und Verfahren gruppiert sich zusammen, um eine Entität darzustellen. Die 'Objektschnittstelle' definiert, wie die Objekt kann mit mitgeführt werden. Ein objektorientiertes Programm wird durch die Wechselwirkung dieser Objekte beschrieben. Objektorientiertes Design ist die Disziplin der Definition des Objekte und ihre Interaktionen, um ein Problem zu lösen, das während dessen identifiziert und dokumentiert wurde Objektorientierte Analyse.

Was folgt, ist eine Beschreibung der Klassenbasierte Untergruppe von objektorientiertem Design, das nicht umfasst Objektprototypbasiert Ansätze, bei denen Objekte typischerweise durch Instanziieren von Klassen, sondern durch Klonieren anderer (Prototypen) Objekte nicht erhalten werden. Objektorientiertes Design ist eine Entwurfsmethode, die den Prozess der objektorientierten Zersetzung und eine Notation zur Darstellung von logischen und physischen sowie staatlichen und dynamischen Modellen des Systems unter dem Design umfasst.

Objektorientierte Designthemen

Eingabe (Quellen) für objektorientiertes Design

Die Eingabe für objektorientiertes Design erfolgt durch die Ausgabe von Objektorientierte Analyse. Erkennen Sie, dass ein Ausgangsartefakt nicht vollständig entwickelt werden muss, um als Eingabe eines objektorientierten Designs zu dienen. Analyse und Design können parallel auftreten, und in der Praxis können die Ergebnisse einer Aktivität den anderen in einem kurzen Rückkopplungszyklus durch einen iterativen Prozess ernähren. Sowohl die Analyse als auch das Design können schrittweise durchgeführt werden, und die Artefakte können kontinuierlich angebaut werden, anstatt vollständig in einer Aufnahme zu entwickeln.

Einige typische Eingangsartefakte für objektorientiertes Design sind:

  • Konzeptmodell: Das Ergebnis einer objektorientierten Analyse erfasst sie Konzepte in der Problemdomäne. Das konzeptionelle Modell wird explizit als unabhängig von Implementierungsdetails ausgewählt, wie z. Parallelität oder Datenspeicherung.
  • Anwendungsfall: Eine Beschreibung von Ereignissequenzen, die zusammen dazu führen, dass ein System etwas Nützliches tut. Jeder Anwendungsfall bietet einen oder mehrere Szenarien Dies vermittelt, wie das System mit den Benutzern interagieren sollte, die als Akteure berufen werden, um ein bestimmtes Geschäftsziel oder eine bestimmte Funktion zu erreichen. Anwendungsfallakteure können Endbenutzer oder andere Systeme sein. In vielen Umständen werden Anwendungsfälle weiter ausgearbeitet in Anwendungsfalldiagramme. Anwendungsfalldiagramme werden verwendet, um den Akteur (Benutzer oder andere Systeme) und die von ihnen durchgeführten Prozesse zu identifizieren.
  • Systemsequenzdiagramm: Ein Systemsequenzdiagramm (SSD) ist ein Bild, das für ein bestimmtes Szenario eines Anwendungsfalls die Ereignisse, die externe Akteure erzeugen, ihre Ordnung und mögliche Inter-System-Ereignisse zeigen.
  • Benutzeroberfläche Dokumentationen (falls zutreffend): Dokument, das die zeigt und beschreibt schauen und fühlen der Benutzeroberfläche des Endprodukts. Es ist nicht obligatorisch, dies zu haben, aber es hilft, das Endprodukt zu visualisieren, und hilft daher dem Designer.
  • Relationales Datenmodell (falls zutreffend): Ein Datenmodell ist ein abstraktes Modell, das beschreibt, wie Daten dargestellt und verwendet werden. Wenn ein Objektdatenbank Es wird nicht verwendet, das relationale Datenmodell sollte normalerweise vor dem Entwurf erstellt werden, da die Strategie für ausgewählt wird Objektrelationskartierung ist eine Ausgabe des OO -Designprozesses. Es ist jedoch möglich, das relationale Datenmodell und die objektorientierten Designartefakte parallel zu entwickeln, und das Wachstum eines Artefakts kann die Verfeinerung anderer Artefakte stimulieren.

Objektorientierte Konzepte

Die fünf grundlegenden Konzepte des objektorientierten Designs sind die in der Programmiersprache eingebauten Funktionen der Implementierungsebene. Diese Merkmale werden häufig durch diese gebräuchlichen Namen erwähnt:

  • Objekt/Klasse: Eine enge Kopplung oder Assoziation von Datenstrukturen mit den Methoden oder Funktionen, die auf die Daten wirken. Dies wird a genannt Klasse, oder Objekt (Ein Objekt wird basierend auf einer Klasse erstellt). Jedes Objekt dient einer separaten Funktion. Es wird durch seine Eigenschaften definiert, was es ist und was es kann. Ein Objekt kann Teil einer Klasse sein, bei der es sich um eine Reihe von Objekten handelt, die ähnlich sind.
  • Informationen verstecken sich: Die Fähigkeit, einige Komponenten des Objekts vor externen Entitäten zu schützen. Dies wird durch Sprachschlüsselwörter realisiert, damit eine Variable als deklariert werden kann Privatgelände oder geschützt zum Besitz Klasse.
  • Nachlass: Die Fähigkeit für a Klasse Funktionalität eines anderen erweitern oder außer Kraft setzen Klasse. Die sogenannte Unterklasse hat einen ganzen Abschnitt, der abgeleitet (geerbt) von der Superklasse Und dann hat es seine eigenen Funktionen und Daten.
  • Schnittstelle (objektorientierte Programmierung): Die Fähigkeit, die Implementierung von a zu verschieben Methode. Die Fähigkeit, die zu definieren Funktionen oder Methoden Unterschriften ohne sie umzusetzen.
  • Polymorphismus (speziell, Subtyping): Die Fähigkeit, eine zu ersetzen Objekt mit Unterobjekte. Die Fähigkeit eines Objektvariable enthalten, nicht nur das Objekt, aber auch alle seine Unterobjekte.

Konzepte entwerfen

  • Definieren von Objekten Mütter, Schaffung Klassen Diagramm aus konzeptionelles Diagramm: Normalerweise kartieren Sie Entität in den Unterricht.
  • Identifizierung Attribute.
  • Verwenden Designmuster (falls zutreffend): Ein Entwurfsmuster ist kein fertiges Design, sondern eine Beschreibung einer Lösung für ein gemeinsames Problem in einem Kontext.[1] Der Hauptvorteil der Verwendung eines Entwurfsmusters besteht darin, dass es in mehreren Anwendungen wiederverwendet werden kann. Es kann auch als Vorlage für die Lösung eines Problems betrachtet werden, das in vielen verschiedenen Situationen und/oder Anwendungen verwendet werden kann. Objektorientierte Entwurfsmuster zeigen typischerweise Beziehungen und Interaktionen zwischen Klassen oder Objekten, ohne die endgültigen Anwendungsklassen oder Objekte anzugeben, die beteiligt sind.
  • Definieren Anwendungsrahmen (falls zutreffend): Das Anwendungsrahmen ist in der Regel eine Reihe von Bibliotheken oder Klassen, die zur Implementierung der Standardstruktur einer Anwendung für ein bestimmtes Betriebssystem verwendet werden. Durch eine große Menge wiederverwendbarer Code in ein Framework wird viel Zeit für den Entwickler gespeichert, da ihm die Aufgabe gespeichert wird, große Mengen an Standardcode für jede neue Anwendung neu zu schreiben.
  • Identifizieren Sie persistente Objekte/Daten (falls zutreffend): Identifizieren Sie Objekte, die länger als eine einzige Laufzeit der Anwendung dauern müssen. Wenn ein relationale Datenbank wird verwendet, entwerfen Sie die Objektbeziehungszuordnung.
  • Identifizieren und definieren Sie Remote -Objekte (falls zutreffend).

Ausgabe (Leistungen) des objektorientierten Designs

Ein Sequenzdiagramm zeigt als parallele vertikale Linien, verschiedene Prozesse oder Objekte, die gleichzeitig leben, und als horizontale Pfeile, die zwischen ihnen ausgetauscht wurden, in der Reihenfolge, in der sie auftreten.
  • Klassen Diagramm: Ein Klassendiagramm ist eine Art statischer Struktur Uml Diagramm, das die Struktur eines Systems beschreibt, indem die Klassen des Systems, deren Attribute und die Beziehungen zwischen den Klassen angezeigt werden. Die durch die Entwicklung der Sequenzdiagramme identifizierten Nachrichten und Klassen können als Eingabe für die automatische Erzeugung des globalen Klassendiagramms des Systems dienen.

Einige Designprinzipien und Strategien

  • Abhängigkeitsspritze: Die Grundidee ist, dass, wenn ein Objekt von einer Instanz eines anderen Objekts abhängt, das erforderliche Objekt in das abhängige Objekt "injiziert" wird. Zum Beispiel eine Datenbankverbindung als Argument an die übergeben werden Konstrukteur anstatt eine intern zu erstellen.
  • Acyclic -Abhängigkeitsprinzip: Das Abhängigkeitsgraphen von Paketen oder Komponenten (die Granularität hängt vom Arbeitsumfang für einen Entwickler ab) keine Zyklen haben. Dies wird auch als ein bezeichnet Regie acyclische Graphen.[2] Zum Beispiel hängt Paket C von Paket B ab, das vom Paket A abhängt. Wenn Paket A auch von Paket C abhängt, hätten Sie einen Zyklus.
  • Zusammengesetzter Wiederverwendungsprinzip: Favorisieren polymorph Komposition von Objekten über die Vererbung.[1]

Siehe auch

Verweise

  1. ^ a b Entwurfsmuster: Elemente wiederverwendbarer objektorientierter Software. Addison-Wesley. 1995. ISBN 0-201-63361-2.
  2. ^ "Was ist objektorientiertes Design?". Objekt Mentor. Archiviert von das Original Am 2007-06-30. Abgerufen 2007-07-03.

Externe Links