Kaum eine Software, die nicht mehr objektorientiert entworfen und entwickelt wird!Die beiden Autoren geben eine umfassende Einführung in die Prinzipien und die Anwendung der Objektorientierung. Das Buch ist aufgabenorientiert, bietet Beispiele in den Sprachen C++, Java, Ruby, und C# sowie ein Kapitel zur aspektorientierten 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
Rezensionen / Stimmen
»Das Buch behandelt die wichtigsten Fragestellungen beim Einsatz objektorientierter Software und hilft damit dem Studierenden, sich in der Welt der Objektorientierung zurecht zu finden. Sehr positiv auch, dass nicht nur C++ und Java als Beispielsprachen genutzt werden, sondern auch aktuell genutzte Script-Sprachen und damit auch deren Vor- und Nachteile aus dem Aspekt der Objektorientierung heraus dargestellt werden.«
Reihe
Sprache
Verlagsort
Verlagsgruppe
Editions-Typ
Maße
Höhe: 24 cm
Breite: 16.8 cm
ISBN-13
978-3-89842-624-4 (9783898426244)
Schweitzer Klassifikation
1 ... Einleitung ... 11
... 1.1 ... Was ist Objektorientierung? ... 11
... 1.2 ... Hallo liebe Zielgruppe ... 12
... 1.3 ... Was bietet dieses Buch (und was nicht)? ... 13
... 1.4 ... Warum überhaupt Objektorientierung? ... 21
2 ... Die Basis der Objektorientierung ... 25
... 2.1 ... Die strukturierte Programmierung als Vorläufer der Objektorientierung ... 26
... 2.2 ... Die Kapselung von Daten ... 29
... 2.3 ... Polymorphie ... 30
... 2.4 ... Die Vererbung ... 32
3 ... Die Prinzipien des objektorientierten Entwurfs ... 37
... 3.1 ... Prinzip 1: Prinzip einer einzigen Verantwortung ... 38
... 3.2 ... Prinzip 2: Trennung der Anliegen ... 43
... 3.3 ... Prinzip 3: Wiederholungen vermeiden ... 45
... 3.4 ... Prinzip 4: Offen für Erweiterung, geschlossen für Änderung ... 48
... 3.5 ... Prinzip 5: Trennung der Schnittstelle von der Implementierung ... 51
... 3.6 ... Prinzip 6: Umkehr der Abhängigkeiten ... 54
... 3.7 ... Prinzip 7: Mach es testbar ... 60
4 ... Die Struktur objektorientierter Software ... 63
... 4.1 ... Die Basis von allem: das Objekt ... 63
... 4.2 ... Klassen: Objekte haben Gemeinsamkeiten ... 82
... 4.3 ... Beziehungen zwischen Objekten ... 115
... 4.4 ... Klassen von Werten und Klassen von Objekten ... 130
5 ... Vererbung und Polymorphie ... 153
... 5.1 ... Die Vererbung der Spezifikation ... 153
... 5.2 ... Polymorphie und ihre Anwendungen ... 191
... 5.3 ... Die Vererbung der Implementierung ... 238
... 5.4 ... Mehrfachvererbung ... 260
... 5.5 ... Statische und dynamische Klassifizierung ... 288
6 ... Persistenz ... 299
... 6.1 ... Serialisierung von Objekten ... 299
... 6.2 ... Speicherung in Datenbanken ... 300
... 6.3 ... Abbildung auf relationale Datenbanken ... 307
... 6.4 ... Normalisierung und Denormalisierung ... 320
7 ... Abläufe in einem objektorientierten System ... 337
... 7.1 ... Erzeugung von Objekten mit Konstruktoren und Prototypen ... 338
... 7.2 ... Fabriken als Abstraktionsebene für die Objekterzeugung ... 349
... 7.3 ... Objekte löschen ... 397
... 7.4 ... Objekte in Aktion und in Interaktion ... 412
... 7.5 ... Kontrakte: Objekte als Vertragspartner ... 455
... 7.6 ... Exceptions: Wenn der Kontrakt nicht eingehalten werden kann ... 471
8 ... Module und Architektur ... 503
... 8.1 ... Module als konfigurierbare und änderbare Komponenten ... 503
... 8.2 ... Die Präsentationsschicht: Model, View, Controller (MVC) ... 511
9 ... Aspekte und Objektorientierung ... 527
... 9.1 ... Trennung der Anliegen ... 527
... 9.2 ... Aspektorientiertes Programmieren ... 539
... 9.3 ... Anwendungen der Aspektorientierung ... 551
... 9.4 ... Annotations ... 563
A ... Anhang ... 575
A.1 ... Verwendete Programmiersprachen ... 575
A.1.1 ... C++ ... 575
A.1.2 ... Java ... 578
A.1.3 ... C# ... 581
A.1.4 ... JavaScript ... 582
A.1.5 ... CLOS ... 584
A.1.6 ... Python ... 587
A.1.7 ... Ruby ... 590
B ... Literaturverzeichnis ... 593
B.1 ... Allgemeine Bücher zur Softwareentwicklung ... 593
B.2 ... Bücher über die UML und die verwendeten Programmiersprachen ... 595
Index ... 597