Sie sind hier
E-Book

Objektorientierte Programmierung

Das umfassende Handbuch

AutorBernhard Lahres, Gregor Rayman, Stefan Strich
VerlagRheinwerk Computing
Erscheinungsjahr2018
Seitenanzahl686 Seiten
ISBN9783836262491
FormatePUB
KopierschutzWasserzeichen
GerätePC/MAC/eReader/Tablet
Preis44,90 EUR

Die praxisorientierte Einführung in OOP

  • Unverzichtbare Skills für guten Code
  • Von den Prinzipien über den Entwurf bis zur Umsetzung
  • Viele Praxistipps, UML-Diagramme und Codebeispiele
Komplexe Projekte solide strukturieren, tragfähige Designs erstellen, guten Code schreiben und wartbare Software liefern: Dafür brauchen Entwickler ein Repertoire, aus dem Objektorientierung nicht mehr wegzudenken ist. In diesem Buch finden Sie alles, was Sie brauchen, um sich in die Objektorientierung einzuarbeiten und ihre Prinzipien zur Basis Ihrer eigenen Arbeit zu machen. Die Autoren erläutern alle Themen anschaulich und verständlich anhand einer Vielzahl typischer Beispiele. Mit UML-Diagrammen und gut kommentierten Codebeispielen in den gängigsten objektorientierten Sprachen bringen sie Ihnen die Umsetzung nahe. Da der Teufel bekanntlich im Detail steckt, ziehen sie viele praktische Anwendungsfälle heran und geben immer wieder Tipps, wie Sie bad smells vermeiden und sauberen Code schreiben. Anhand eines größeren Projekts bekommen Sie zudem einmal von Anfang bis Ende gezeigt, wie Sie OOP konsequent realisieren können. So profitieren Sie von der langjährigen Erfahrung der Autoren mit allen Aspekten der Entwicklung komplexer Software.

Aus dem Inhalt:

  • Prinzipien des objektorientierten Entwurfs
  • Kapselung von Daten
  • Polymorphie
  • Struktur objektorientierter Software
  • Klassen und Prototypen
  • Konkrete und abstrakte Datentypen
  • Beziehungen zwischen Objekten
  • Klassen von Werten und Objekten
  • Vererbungsbeziehungen
  • Mehrfachvererbung
  • Statische und dynamische Klassifizierung
  • Persistenz
  • Erzeugung und Zerstörung von Objekten
  • Objekte in Aktion und in Interaktion
  • Objekte als Vertragspartner
  • Module als konfigurierbare und änderbare Komponenten
  • MVC
  • Aspekte und Objektorientierung
  • Beispielprojekt
  • Glossar



Bernhard Lahres ist Software-Architekt und IT-Projektleiter bei einem großen Telekommunikationsunternehmen. Damit ist er für sehr große, komplexe Software-Systeme verantwortlich. Sein Hauptfokus liegt darauf, diese Komplexität in den Griff zu bekommen, um dennoch wartbare und erweiterbare Systeme zu realisieren. Er setzt dabei aus Überzeugung auf objektorientierte Methoden als Basis.

Kaufen Sie hier:

Horizontale Tabs

Leseprobe

1.3    Was bietet dieses Buch (und was nicht)?


Objektorientierung ist eine Vorgehensweise, die den Fokus auf modulare Systeme legt. Dieses Modulprinzip legen wir in zweierlei Hinsicht auch diesem Buch zugrunde.

Zum einen sehen wir das Buch als einen Baustein, der beim Verständnis des Themas Objektorientierung eine zentrale Rolle spielt. Wir beschreiben, wie Sie Objektorientierung einsetzen können, um auf der Grundlage von zentralen Prinzipien beherrschbare und änderbare Software erstellen können. Wenn wir auf diesem Weg an Entwurfsmustern vorbeikommen, werden wir diese vorstellen und ihren Nutzen für den Entwurf oder die aktuelle Problemstellung erläutern.

Zum anderen bauen die Kapitel des Buches modular aufeinander auf. Ausgehend von abstrakten Prinzipien gehen wir immer weiter in die konkrete Anwendung der Objektorientierung. Diesen modularen Aufbau wollen wir in einer Übersicht kurz vorstellen.

1.3.1    Bausteine des Buches


Abbildung 1.1 stellt die einzelnen Kapitel als Bausteine in der Übersicht dar.

In Kapitel 2, »Die Basis der Objektorientierung«, stellen wir zunächst die grundlegenden Unterschiede der objektorientierten Vorgehensweise im Vergleich zur strukturierten Programmierung vor. Wir beschreiben dort auch im Überblick die Basismechanismen der Objektorientierung: Datenkapselung, Polymorphie und Vererbung.

Danach schließt sich Kapitel 3, »Die Prinzipien des objektorientierten Entwurfs«, an. Das Kapitel stellt die grundlegenden Prinzipien vor, die für den objektorientierten Ansatz entscheidend sind. In Abschnitt 1.1, »Was ist Objektorientierung?«, haben wir einen kleinen Dialog vorgestellt, in dem die grundlegenden Eigenschaften von objektorientierten Sprachen angesprochen werden. Genau wie die dort genannten Eigenschaften geben auch die Prinzipien der Objektorientierung einen Rahmen für eine bestimmte Art der Softwareentwicklung vor. Die Prinzipien sind zentral für das Vorgehen bei der Entwicklung von objektorientierter Software. Das Kapitel legt also die grundsätzliche Basis, ohne bereits detailliert auf Objekte, Klassen oder Ähnliches einzugehen.

Anschließend erläutern wir in Kapitel 4, »Die Struktur objektorientierter Software«, das Konzept von Objekten, Klassen und der darauf aufbauenden Möglichkeiten. Wir erläutern das Konzept der Klassifizierung und betrachten die Rolle der Klassen als Module. Den verschiedenen Arten, in denen Objekte untereinander in Beziehung stehen können, ist ebenfalls ein Teilkapitel gewidmet.

Abbildung 1.1    Modularer Aufbau der Kapitel

In Kapitel 5, »Vererbung und Polymorphie«, beschreiben wir, wie die Vererbung der Spezifikation – im Zusammenspiel mit der Fähigkeit der Polymorphie – Programme flexibel und erweiterbar halten kann. Wir gehen dabei auf die verschiedenen Varianten der Vererbung im Detail ein und stellen deren Möglichkeiten und Probleme vor. An Beispielen erläutern wir dabei auch, wie die Möglichkeiten der Polymorphie am besten genutzt werden können.

Kapitel 6, »Persistenz«, erklärt, wie Objekte in relationalen Datenbanken gespeichert werden können. In fast allen Anwendungen taucht die Notwendigkeit auf, dass Objekte persistent gespeichert werden müssen. Wir stellen die Abbildungsregeln für Vererbungsbeziehungen und andere Beziehungen zwischen Objekten und Klassen auf eine relationale Datenbank vor. Schließlich setzen wir diese Abbildungsregeln in Beziehung zu den verschiedenen Stufen der Normalisierung in einer relationalen Datenbank.

In Kapitel 7, »Abläufe in einem objektorientierten System«, beschreiben wir die Vorgänge innerhalb des Lebenszyklus von Objekten. Wir gehen detailliert auf die Erzeugung von Objekten ein und erläutern, wie Sie ein System erweiterbar halten, indem Sie möglichst flexible Methoden der Objekterzeugung einsetzen. Außerdem enthält das Kapitel Beschreibungen von Interaktionsszenarien, die sich häufig in objektorientierten Systemen finden. Der Abschluss des Objektlebenszyklus, der meist über den Mechanismus der Garbage Collection stattfindet, wird ebenfalls in diesem Kapitel erklärt.

In Kapitel 8, »Module und Architektur«, zeigen wir Beispiele dafür, wie objektorientierte Entwürfe in reale Systeme integriert werden. Wir stellen das Konzept von in der Praxis verwendeten Ansätzen wie Frameworks und Anwendungscontainern vor. Am Beispiel der Präsentationsschicht einer Anwendung erläutern wir, wie objektorientierte Verfahren die Interaktionen in einem System strukturieren können. Dazu erklären wir das Architekturmuster Model View Controller (MVC) und dessen Einsatzszenarien.

In Kapitel 9, »Aspekte und Objektorientierung«, stellen wir dar, wie sich eine Reihe von Einschränkungen der objektorientierten Vorgehensweise durch Aspektorientierung aufheben lässt. Wir erläutern, welche Beschränkungen der objektorientierten Vorgehensweise überhaupt zur Notwendigkeit einer aspektorientierten Sichtweise führen. Die Verwaltung von sogenannten übergreifenden Anliegen (engl. Crosscutting Concerns) ist mit den Mitteln der klassischen objektorientierten Programmierung nur sehr aufwendig zu realisieren. Bei Crosscutting Concerns handelt es sich um Anforderungen, die mit Mitteln der Objektorientierung nur klassen- oder komponentenübergreifend realisiert werden können.

Deshalb zeigen wir in diesem Kapitel verschiedene Möglichkeiten auf, Lösungen dafür in objektorientierte Systeme zu integrieren. Wir erläutern den Weg zu den aspektorientierten Lösungen und stellen diese anhand praktischer Beispiele vor.

Abgerundet wird unser Buch dann durch Kapitel 10, »Objektorientierung am Beispiel: eine Webapplikation in JavaScript«. Dort greifen wir am Beispiel einer Webanwendung eine ganze Reihe von Konzepten auf, die in den vorhergehenden Kapiteln erläutert wurden. Im Kontext einer einfachen, aber vollständigen Webanwendung auf Basis von JavaScript und darauf aufbauenden Frameworks stellen wir Schritt für Schritt vor, wie Geschäftslogik und Präsentationsschicht durch objektorientierte Vorgehensweisen klar voneinander entkoppelt werden. Dabei gehen wir auch darauf ein, durch welchen Aufbau ein Austausch von Teilen der Präsentationsschicht erleichtert wird.

Im Anhang werden wir die im Buch verwendeten Programmiersprachen jeweils mit einer Kurzreferenz vorstellen und Hinweise auf weitere Informationen geben.

1.3.2    Crosscutting Concerns: übergreifende Anliegen


Die beschriebenen Kapitel bauen in Form einer Modulstruktur aufeinander auf. Aber ähnlich wie bei der Strukturierung objektorientierter Software gibt es natürlich auch hier Themen, die übergreifend sind und sich nicht genau einem der Kapitel zuordnen lassen.

Im Folgenden gehen wir kurz darauf ein, welche Rolle diese weiteren Themengebiete spielen.

Unified Modeling Language

Die Unified Modeling Language (UML) hat sich mittlerweile als ein sinnvolles und weitverbreitetes Modellierungsmittel durchgesetzt. Wir werden die nach unserer Ansicht wichtigsten Darstellungselemente der UML anhand von Beispielen vorstellen. Dabei werden wir diese immer dann einführen, wenn die betreffende Modellierung für unser aktuell behandeltes Thema relevant wird. Wir verwenden die UML in der Regel auch zur Illustration von Strukturen und Abläufen.

Objektorientierte Analyse

Die objektorientierte Analyse betrachtet eine Domäne als System von kooperierenden Objekten. Obwohl objektorientierte Analysemethoden nicht unser zentrales Thema sind, werden wir diese immer dann heranziehen, wenn wir auf die Verbindung von Analyse und Design eingehen.

Entwurfsmuster

Entwurfsmuster (engl. Design Patterns) für den objektorientierten Entwurf wurden mit der Publikation »Entwurfsmuster: Elemente wiederverwendbarer objektorientierter Software« als Begriff geprägt. Die Autoren Erich Gamma, Richard Helm, Ralph Johnson und John Vlissides führen dabei eine standardisierte Beschreibungsform für wiederkehrende Vorgehensweisen beim Entwurf guter objektorientierter Software ein.[ 1 ] Aufgrund von Umständen, die mit der Sortierung unseres Alphabets zusammenhängen, wird die Publikation meist mit Erich Gamma assoziiert.

Grundsätzlich sind solche Entwurfsmuster unabhängig davon, ob wir eine objektorientierte Vorgehensweise gewählt haben, da sie nur eine Schablone für gleichartige Problemstellungen sind. Allerdings hat sich in der Praxis gezeigt, dass bei Verwendung von objektorientierten Methoden diese Muster einfacher zu erkennen und besser zu beschreiben sind.

In der Folge ist eine ganze Reihe von unterschiedlichen Entwurfsmustern entstanden, die meisten mit Bezug auf objektorientierte Methoden. In der Kategorie Anti-Patterns werden häufige Fehler beim Systementwurf zusammengefasst.

Wir verwenden im...

Blick ins Buch

Weitere E-Books zum Thema: Programmiersprachen - Softwareentwicklung

Leben 3.0

E-Book Leben 3.0
Mensch sein im Zeitalter Künstlicher Intelligenz Format: ePUB

Die Nobelpreis-Schmiede Massachusetts Institute of Technology ist der bedeutendste technologische Think Tank der USA. Dort arbeitet Professor Max Tegmark mit den weltweit führenden Entwicklern k…

Prozessübergreifendes Projektmanagement

E-Book Prozessübergreifendes Projektmanagement
Grundlagen erfolgreicher Projekte Format: PDF

Projektmanagement ist in Zeiten von enger werdenden Projektbudgets und Projektzeitplänen eine zunehmende Herausforderung geworden. Die Autoren geben wertvolle Hilfestellungen in Krisensituationen und…

Python 3 - Intensivkurs

E-Book Python 3 - Intensivkurs
Projekte erfolgreich realisieren Format: PDF

Python ist eine vollwertige Programmiersprache, mit der sich auch größere Anwendungen entwickeln lassen. In den letzten Jahren hat sie an Beliebtheit gewonnen, und mit Python 3 steht eine stark…

Management von IT-Projekten

E-Book Management von IT-Projekten
Von der Planung zur Realisierung Format: PDF

Kenntnisse des Projektmanagements und seine Anwendungsmöglichkeiten sind für IT-Manager und IT-Entwickler unentbehrlich. In diesem Buch werden die wichtigsten Verfahren und Methoden für das…

Fundiert entscheiden

E-Book Fundiert entscheiden
Ein kleines Handbuch für alle Lebenslagen Format: PDF

Orientierungshilfe in postfaktischen Zeiten Dieses Buch ist ein Rettungsanker in der Flut der Informationen, die ununterbrochen auf uns einströmen. Tag für Tag müssen Sie sich Meinungen bilden, sei…

Prozessübergreifendes Projektmanagement

E-Book Prozessübergreifendes Projektmanagement
Grundlagen erfolgreicher Projekte Format: PDF

Projektmanagement ist in Zeiten von enger werdenden Projektbudgets und Projektzeitplänen eine zunehmende Herausforderung geworden. Die Autoren geben wertvolle Hilfestellungen in Krisensituationen und…

Weitere Zeitschriften

Card Forum International

Card Forum International

Card Forum International, Magazine for Card Technologies and Applications, is a leading source for information in the field of card-based payment systems, related technologies, and required reading ...

Card-Forum

Card-Forum

Card-Forum ist das marktführende Magazin im Themenbereich der kartengestützten Systeme für Zahlung und Identifikation, Telekommunikation und Kundenbindung sowie der damit verwandten und ...

Courier

Courier

The Bayer CropScience Magazine for Modern AgriculturePflanzenschutzmagazin für den Landwirt, landwirtschaftlichen Berater, Händler und generell am Thema Interessierten, mit umfassender ...

Das Grundeigentum

Das Grundeigentum

Das Grundeigentum - Zeitschrift für die gesamte Grundstücks-, Haus- und Wohnungswirtschaft. Für jeden, der sich gründlich und aktuell informieren will. Zu allen Fragen rund um die Immobilie. Mit ...

ERNEUERBARE ENERGIEN

ERNEUERBARE ENERGIEN

ERNEUERBARE ENERGIEN informiert durch unabhängigen Journalismus umfassend über die wichtigsten Geschehnisse im Markt der regenerativen Energien. Mit Leidenschaft sind wir stets auf der Suche nach ...