Sie sind hier
E-Book

Objektorientierte Programmierung

Das umfassende Handbuch

AutorBernhard Lahres, Gregor Rayman
VerlagGalileo Computing
Erscheinungsjahr2009
Seitenanzahl656 Seiten
ISBN9783836232142
FormatPDF
KopierschutzWasserzeichen
GerätePC/MAC/eReader/Tablet
Preis44,90 EUR
Kaum eine Software, die nicht mehr objektorientiert entworfen und entwickelt wird! In diesem Buch finden Sie alles, was Sie brauchen, um sich in die objektorientierte Programmierung einzuarbeiten. Die beiden Autoren erläutern alle Prinzipien und ihre Umsetzung anschaulich und verständlich anhand einer Vielzahl typischer Beispiele. Als Sprachen werden C++, Java, Ruby, C# und PHP eingesetzt. Anhand eines größeren Projekts bekommen Sie zudem einmal von Anfang bis Ende gezeigt, wie Sie OOP konsequent realisieren können. Des Weiteren bietet das Buch eine Einführung in die aspektorientierte Programmierung. Aus dem Inhalt

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

Kaufen Sie hier:

Horizontale Tabs

Blick ins Buch
Inhaltsverzeichnis
Inhalt7
1 Einleitung13
1.1 Was ist Objektorientierung?13
1.2 Hallo liebe Zielgruppe14
1.3 Was bietet dieses Buch (und was nicht)?15
1.3.1 Bausteine des Buchs16
1.3.2 Crosscutting Concerns: übergreifende Anliegen19
1.3.3 Die Rolle von Programmiersprachen20
1.4 Warum überhaupt Objektorientierung?22
1.4.1 Gute Software: Was ist das eigentlich?23
1.4.2 Die Rolle von Prinzipien24
1.4.3 Viele mögliche Lösungen für ein Problem25
2 Die Basis der Objektorientierung27
2.1 Die strukturierte Programmierung als Vorläufer der Objektorientierung28
2.2 Die Kapselung von Daten31
2.3 Polymorphie32
2.4 Die Vererbung34
2.4.1 Vererbung der Spezifikation34
2.4.2 Erben von Umsetzungen (Implementierungen)35
3 Die Prinzipien des objektorientierten Entwurfs39
3.1 Prinzip 1: Prinzip einer einzigen Verantwortung40
3.2 Prinzip 2: Trennung der Anliegen45
3.3 Prinzip 3: Wiederholungen vermeiden47
3.4 Prinzip 4: Offen für Erweiterung, geschlossen für Änderung50
3.5 Prinzip 5: Trennung der Schnittstelle von der Implementierung53
3.6 Prinzip 6: Umkehr der Abhängigkeiten56
3.6.1 Umkehrung des Kontrollflusses60
3.7 Prinzip 7: Mach es testbar62
4 Die Struktur objektorientierter Software65
4.1 Die Basis von allem: das Objekt65
4.1.1 Eigenschaften von Objekten: Objekte als Datenkapseln67
4.1.2 Operationen und Methoden von Objekten74
4.1.3 Kontrakte: Ein Objekt trägt Verantwortung79
4.1.4 Die Identität von Objekten81
4.1.5 Objekte haben Beziehungen83
4.2 Klassen: Objekte haben Gemeinsamkeiten84
4.2.1 Klassen sind Modellierungsmittel84
4.2.2 Kontrakte: die Spezifikation einer Klasse88
4.2.3 Klassen sind Datentypen92
4.2.4 Klassen sind Module102
4.2.5 Sichtbarkeit von Daten und Methoden105
4.2.6 Klassenbezogene Methoden und Attribute112
4.2.7 Singleton-Methoden: Methoden für einzelne Objekte116
4.3 Beziehungen zwischen Objekten117
4.3.1 Rollen und Richtung einer Assoziation119
4.3.2 Navigierbarkeit120
4.3.3 Multiplizität120
4.3.4 Qualifikatoren125
4.3.5 Beziehungsklassen, Attribute einer Beziehung126
4.3.6 Implementierung von Beziehungen128
4.3.7 Komposition und Aggregation129
4.3.8 Attribute132
4.3.9 Beziehungen zwischen Objekten in der Übersicht133
4.4 Klassen von Werten und Klassen von Objekten133
4.4.1 Werte in den objektorientierten Programmiersprachen134
4.4.2 Entwurfsmuster »Fliegengewicht«137
4.4.3 Aufzählungen (Enumerations)140
4.4.4 Identität von Objekten147
5 Vererbung und Polymorphie155
5.1 Die Vererbung der Spezifikation155
5.1.1 Hierarchien von Klassen und Unterklassen155
5.1.2 Unterklassen erben die Spezifikation von Oberklassen157
5.1.3 Das Prinzip der Ersetzbarkeit161
5.1.4 Abstrakte Klassen, konkrete Klassen und Schnittstellen-Klassen167
5.1.5 Vererbung der Spezifikation und das Typsystem176
5.1.6 Sichtbarkeit im Rahmen der Vererbung183
5.2 Polymorphie und ihre Anwendungen193
5.2.1 Dynamische Polymorphie am Beispiel195
5.2.2 Methoden als Implementierung von Operationen200
5.2.3 Anonyme Klassen208
5.2.4 Single und Multiple Dispatch210
5.2.5 Die Tabelle für virtuelle Methoden228
5.3 Die Vererbung der Implementierung239
5.3.1 Überschreiben von Methoden241
5.3.2 Das Problem der instabilen Basisklassen249
5.3.3 Problem der Gleichheitsprüfung bei geerbter Implementierung254
5.4 Mehrfachvererbung261
5.4.1 Mehrfachvererbung: Möglichkeiten und Probleme261
5.4.2 Delegation statt Mehrfachvererbung268
5.4.3 Mixin-Module statt Mehrfachvererbung271
5.4.4 Die Problemstellungen der Mehrfachvererbung273
5.5 Statische und dynamische Klassifizierung289
5.5.1 Dynamische Änderung der Klassenzugehörigkeit290
5.5.2 Entwurfsmuster »Strategie« statt dynamischer Klassifizierung294
6 Persistenz299
6.1 Serialisierung von Objekten299
6.2 Speicherung in Datenbanken300
6.2.1 Relationale Datenbanken300
6.2.2 Struktur der relationalen Datenbanken301
6.2.3 Begriffsdefinitionen302
6.3 Abbildung auf relationale Datenbanken307
6.3.1 Abbildung von Objekten in relationalen Datenbanken307
6.3.2 Abbildung von Beziehungen in relationalen Datenbanken311
6.3.3 Abbildung von Vererbungsbeziehungen auf eine relationale Datenbank315
6.4 Normalisierung und Denormalisierung320
6.4.1 Die erste Normalform: Es werden einzelne Fakten gespeichert322
6.4.2 Die zweite Normalform: Alles hängt vom ganzen Schlüssel ab323
6.4.3 Die dritte Normalform: Keine Abhängigkeiten unter den Nichtschlüssel-Spalten326
6.4.4 Die vierte Normalform: Trennen unabhängiger Relationen330
6.4.5 Die fünfte Normalform: Einfacher geht’s nicht332
7 Abläufe in einem objektorientierten System337
7.1 Erzeugung von Objekten mit Konstruktoren und Prototypen338
7.1.1 Konstruktoren: Klassen als Vorlagen für ihre Exemplare338
7.1.2 Prototypen als Vorlagen für Objekte342
7.1.3 Entwurfsmuster »Prototyp«348
7.2 Fabriken als Abstraktionsebene für die Objekterzeugung349
7.2.1 Statische Fabriken352
7.2.2 Abstrakte Fabriken355
7.2.3 Konfigurierbare Fabriken360
7.2.4 Registraturen für Objekte364
7.2.5 Fabrikmethoden368
7.2.6 Erzeugung von Objekten als Singletons377
7.2.7 Dependency Injection386
7.3 Objekte löschen397
7.3.1 Speicherbereiche für Objekte397
7.3.2 Was ist eine Garbage Collection?399
7.3.3 Umsetzung einer Garbage Collection400
7.4 Objekte in Aktion und in Interaktion412
7.4.1 UML: Diagramme zur Beschreibung von Abläufen412
7.4.2 Nachrichten an Objekte421
7.4.3 Iteratoren und Generatoren421
7.4.4 Funktionsobjekte und ihr Einsatz als Eventhandler433
7.4.5 Kopien von Objekten442
7.4.6 Sortierung von Objekten452
7.5 Kontrakte: Objekte als Vertragspartner455
7.5.1 Überprüfung von Kontrakten455
7.5.2 Übernahme von Verantwortung: Unterklassen in der Pflicht457
7.5.3 Prüfungen von Kontrakten bei Entwicklung und Betrieb470
7.6 Exceptions: Wenn der Kontrakt nicht eingehalten werden kann471
7.6.1 Exceptions in der Übersicht472
7.6.2 Exceptions und der Kontrollfluss eines Programms478
7.6.3 Exceptions im Einsatz bei Kontraktverletzungen484
7.6.4 Exceptions als Teil eines Kontraktes488
7.6.5 Der Umgang mit Checked Exceptions493
7.6.6 Exceptions in der Zusammenfassung501
8 Module und Architektur503
8.1 Module als konfigurierbare und änderbare Komponenten503
8.1.1 Relevanz der Objektorientierung für Softwarearchitektur503
8.1.2 Erweiterung von Modulen505
8.2 Die Präsentationsschicht: Model, View, Controller (MVC)511
8.2.1 Das Beobachter-Muster als Basis von MVC512
8.2.2 MVC in Smalltalk: Wie es ursprünglich mal war513
8.2.3 MVC: Klärung der Begriffe514
8.2.4 MVC in Webapplikationen: genannt »Model 2«518
8.2.5 MVC mit Fokus auf Testbarkeit: Model-View-Presenter523
9 Aspekte und Objektorientierung527
9.1 Trennung der Anliegen527
9.1.1 Kapselung von Daten531
9.1.2 Lösungsansätze zur Trennung von Anliegen532
9.2 Aspektorientiertes Programmieren539
9.2.1 Integration von aspektorientierten Verfahren in Frameworks539
9.2.2 Bestandteile der Aspekte541
9.2.3 Dynamisches Crosscutting541
9.2.4 Statisches Crosscutting548
9.3 Anwendungen der Aspektorientierung550
9.3.1 Zusätzliche Überprüfungen während der Übersetzung551
9.3.2 Logging552
9.3.3 Transaktionen und Profiling553
9.3.4 Design by Contract556
9.3.5 Introductions559
9.3.6 Aspektorientierter Observer560
9.4 Annotations562
9.4.1 Zusatzinformation zur Struktur eines Programms563
9.4.2 Annotations im Einsatz in Java und C#565
9.4.3 Beispiele für den Einsatz von Annotations566
10 Objektorientierung am Beispiel: Eine Web-Applikation mit PHP 5 und Ajax573
10.1 OOP in PHP574
10.1.1 Klassen in PHP574
10.1.2 Dynamische Natur von PHP578
10.2 Das entwickelte Framework - Trennung der Anliegen - Model View Controller578
10.2.1 Trennung der Daten von der Darstellung579
10.3 Ein Dienst in PHP580
10.3.1 Datenmodell581
10.3.2 Dienste - Version 1583
10.4 Ein Klient in Ajax586
10.4.1 Bereitstellung der Daten587
10.4.2 Darstellung der Daten589
10.5 Ein Container für Dienste in PHP598
10.5.1 Dispatcher601
10.5.2 Fabrik603
10.5.3 Dependency Injection604
10.5.4 Sicherheit610
10.6 Ein Klient ohne JavaScript615
10.7 Was noch übrigbleibt619
A Verwendete Programmiersprachen623
A.1 C++623
A.2 Java626
A.3 C#629
A.4 JavaScript629
A.5 CLOS632
A.6 Python635
A.7 Ruby637
B Literaturverzeichnis641
B.1 Allgemeine Bücher zur Softwareentwicklung641
B.2 Bücher über die UML und die verwendeten Programmiersprachen643
Index645

Weitere E-Books zum Thema: Programmiersprachen - Softwareentwicklung

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

Programmieren lernen in PHP 5

E-Book Programmieren lernen in PHP 5
Format: PDF

Mit der Version 5 erreicht PHP einen bemerkenswerten Reifegrad, der PHP zu einer festen Größe in der Welt der Webprogrammierung macht. Gerade die leichte Erlernbarkeit macht PHP zur idealen…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Weitere Zeitschriften

Berufsstart Bewerbung

Berufsstart Bewerbung

»Berufsstart Bewerbung« erscheint jährlich zum Wintersemester im November mit einer Auflage von 50.000 Exemplaren und ermöglicht Unternehmen sich bei Studenten und Absolventen mit einer ...

Bibel für heute

Bibel für heute

BIBEL FÜR HEUTE ist die Bibellese für alle, die die tägliche Routine durchbrechen wollen: Um sich intensiver mit einem Bibeltext zu beschäftigen. Um beim Bibel lesen Einblicke in Gottes ...

Demeter-Gartenrundbrief

Demeter-Gartenrundbrief

Einzige Gartenzeitung mit Anleitungen und Erfahrungsberichten zum biologisch-dynamischen Anbau im Hausgarten (Demeter-Anbau). Mit regelmäßigem Arbeitskalender, Aussaat-/Pflanzzeiten, Neuigkeiten ...

DSD Der Sicherheitsdienst

DSD Der Sicherheitsdienst

Der "DSD – Der Sicherheitsdienst" ist das Magazin der Sicherheitswirtschaft. Es erscheint viermal jährlich und mit einer Auflage von 11.000 Exemplaren. Der DSD informiert über aktuelle Themen ...