Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Praxisbuch Objektorientierung von Bernhard Lahres, Gregor Raýman
Professionelle Entwurfsverfahren
Buch: Praxisbuch Objektorientierung

Praxisbuch Objektorientierung
609 S., 49,90 Euro
Rheinwerk Computing
ISBN 3-89842-624-6
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.

Nutzen Sie die HTML-Version des Buches zum Reinschnuppern oder als immer verfügbare Ergänzung zu Ihrem Buch.

Die gedruckte Version des Buches erhalten Sie in unserem Online-Shop - versandkostenfrei innerhalb Deutschlands und Österreichs.
Zum Online-Shop

Rheinwerk Computing - Zum Seitenanfang

1 Einleitung

1.1 Was ist Objektorientierung?
1.2 Hallo liebe Zielgruppe
1.3 Was bietet dieses Buch (und was nicht)?
  1.3.1 Bausteine unseres Buchs
  1.3.2 Crosscutting Concerns: übergreifende Anliegen
  1.3.3 Und was ist mit Übungsaufgaben?
  1.3.4 Die Rolle von Programmiersprachen
1.4 Warum überhaupt Objektorientierung?
  1.4.1 Gute Software: Was ist das eigentlich?
  1.4.2 Die Rolle von Prinzipien
  1.4.3 Viele mögliche Lösungen für ein Problem

Rheinwerk Computing - Zum Seitenanfang

2 Die Basis der Objektorientierung

2.1 Die strukturierte Programmierung als Vorläufer der Objektorientierung
2.2 Die Kapselung von Daten
2.3 Polymorphie
2.4 Die Vererbung
  2.4.1 Vererbung der Spezifikation
  2.4.2 Erben von Umsetzungen (Implementierungen)

Rheinwerk Computing - Zum Seitenanfang

3 Die Prinzipien des objektorientierten Entwurfs

3.1 Prinzip 1: Prinzip einer einzigen Verantwortung
3.2 Prinzip 2: Trennung der Anliegen
3.3 Prinzip 3: Wiederholungen vermeiden
3.4 Prinzip 4: Offen für Erweiterung, geschlossen für Änderung
3.5 Prinzip 5: Trennung der Schnittstelle von der Implementierung
3.6 Prinzip 6: Umkehr der Abhängigkeiten
  3.6.1 Umkehrung des Kontrollflusses
3.7 Prinzip 7: Mach es testbar

Rheinwerk Computing - Zum Seitenanfang

4 Die Struktur objektorientierter Software

4.1 Die Basis von allem: das Objekt
  4.1.1 Eigenschaften von Objekten: Objekte als Datenkapseln
  4.1.2 Operationen und Methoden von Objekten
  4.1.3 Kontrakte: Ein Objekt trägt Verantwortung
  4.1.4 Die Identität von Objekten
  4.1.5 Objekte haben Beziehungen
4.2 Klassen: Objekte haben Gemeinsamkeiten
  4.2.1 Klassen sind Modellierungsmittel
  4.2.2 Kontrakte: die Spezifikation einer Klasse
  4.2.3 Klassen sind Datentypen
  4.2.4 Klassen sind Module
  4.2.5 Sichtbarkeit von Daten und Methoden
  4.2.6 Klassenbezogene Methoden und Attribute
  4.2.7 Singleton-Methoden: Methoden für einzelne Objekte
4.3 Beziehungen zwischen Objekten
  4.3.1 Rollen und Richtung einer Assoziation
  4.3.2 Navigierbarkeit
  4.3.3 Kardinalität
  4.3.4 Qualifikatoren
  4.3.5 Beziehungsklassen, Attribute einer Beziehung
  4.3.6 Implementierung von Beziehungen
  4.3.7 Komposition und Aggregation
  4.3.8 Attribute
  4.3.9 Beziehungen zwischen Objekten in der Übersicht
4.4 Klassen von Werten und Klassen von Objekten
  4.4.1 Werte in den objektorientierten Programmiersprachen
  4.4.2 Entwurfsmuster Fliegengewicht
  4.4.3 Aufzählungen (Enumerations)
  4.4.4 Identität von Objekten

Rheinwerk Computing - Zum Seitenanfang

5 Vererbung und Polymorphie

5.1 Die Vererbung der Spezifikation
  5.1.1 Hierarchien von Klassen und Unterklassen
  5.1.2 Unterklassen erben die Spezifikation von Oberklassen
  5.1.3 Das Prinzip der Ersetzbarkeit
  5.1.4 Abstrakte Klassen, konkrete Klassen und Schnittstellen-Klassen
  5.1.5 Vererbung der Spezifikation und das Typsystem
  5.1.6 Sichtbarkeit im Rahmen der Vererbung
5.2 Polymorphie und ihre Anwendungen
  5.2.1 Dynamische Polymorphie am Beispiel
  5.2.2 Methoden als Implementierung von Operationen
  5.2.3 Anonyme Klassen
  5.2.4 Single und Multiple Dispatch
  5.2.5 Die Tabelle für virtuelle Methoden
5.3 Die Vererbung der Implementierung
  5.3.1 Überschreiben von Methoden
  5.3.2 Das Problem der instabilen Basisklassen
  5.3.3 Problem der Gleichheitsprüfung bei geerbter Implementierung
5.4 Mehrfachvererbung
  5.4.1 Mehrfachvererbung: Möglichkeiten und Probleme
  5.4.2 Delegation statt Mehrfachvererbung
  5.4.3 Mixin-Module statt Mehrfachvererbung
  5.4.4 Die Problemstellungen der Mehrfachvererbung
5.5 Statische und dynamische Klassifizierung
  5.5.1 Dynamische Änderung der Klassenzugehörigkeit
  5.5.2 Entwurfsmuster Strategie statt dynamischer Klassifizierung

Rheinwerk Computing - Zum Seitenanfang

6 Persistenz

6.1 Serialisierung von Objekten
6.2 Speicherung in Datenbanken
  6.2.1 Relationale Datenbanken
  6.2.2 Struktur der relationalen Datenbanken
  6.2.3 Begriffsdefinitionen
6.3 Abbildung auf relationale Datenbanken
  6.3.1 Abbildung von Objekten in relationalen Datenbanken
  6.3.2 Abbildung von Beziehungen in relationalen Datenbanken
  6.3.3 Abbildung von Vererbungsbeziehungen auf eine relationale Datenbank
6.4 Normalisierung und Denormalisierung
  6.4.1 Die erste Normalform: Es werden einzelne Fakten gespeichert
  6.4.2 Die zweite Normalform: Alles hängt vom ganzen Schlüssel ab
  6.4.3 Die dritte Normalform: Keine Abhängigkeiten unter den Nichtschlüssel-Spalten
  6.4.4 Die vierte Normalform: Trennen unabhängiger Relationen
  6.4.5 Die fünfte Normalform: Einfacher geht’s nicht

Rheinwerk Computing - Zum Seitenanfang

7 Abläufe in einem objektorientierten System

7.1 Erzeugung von Objekten mit Konstruktoren und Prototypen
  7.1.1 Konstruktoren: Klassen als Vorlagen für ihre Exemplare
  7.1.2 Prototypen als Vorlagen für Objekte
  7.1.3 Entwurfsmuster Prototyp
7.2 Fabriken als Abstraktionsebene für die Objekterzeugung
  7.2.1 Statische Fabriken
  7.2.2 Abstrakte Fabriken
  7.2.3 Konfigurierbare Fabriken
  7.2.4 Registraturen für Objekte
  7.2.5 Fabrikmethoden
  7.2.6 Erzeugung von Objekten als Singletons
  7.2.7 Dependency Injection
7.3 Objekte löschen
  7.3.1 Speicherbereiche für Objekte
  7.3.2 Was ist eine Garbage Collection?
  7.3.3 Umsetzung einer Garbage Collection
7.4 Objekte in Aktion und in Interaktion
  7.4.1 UML: Diagramme zur Beschreibung von Abläufen
  7.4.2 Nachrichten an Objekte
  7.4.3 Iteratoren und Generatoren
  7.4.4 Funktionsobjekte und ihr Einsatz als Eventhandler
  7.4.5 Kopien von Objekten
  7.4.6 Sortierung von Objekten
7.5 Kontrakte: Objekte als Vertragspartner
  7.5.1 Überprüfung von Kontrakten
  7.5.2 Übernahme von Verantwortung: Unterklassen
in der Pflicht
  7.5.3 Prüfungen von Kontrakten bei Entwicklung
und Betrieb
7.6 Exceptions: Wenn der Kontrakt nicht
eingehalten werden kann
  7.6.1 Exceptions in der Übersicht
  7.6.2 Exceptions und der Kontrollfluss eines Programms
  7.6.3 Exceptions im Einsatz bei Kontraktverletzungen
  7.6.4 Exceptions als Teil eines Kontraktes
  7.6.5 Der Umgang mit Checked Exceptions
  7.6.6 Exceptions in der Zusammenfassung

Rheinwerk Computing - Zum Seitenanfang

8 Module und Architektur

8.1 Module als konfigurierbare und änderbare Komponenten
  8.1.1 Relevanz der Objektorientierung für Softwarearchitektur
  8.1.2 Erweiterung von Modulen
8.2 Die Präsentationsschicht: Model, View, Controller (MVC)
  8.2.1 Das Beobachter-Muster als Basis von MVC
  8.2.2 MVC in Smalltalk: Wie es ursprünglich mal war
  8.2.3 MVC: Klärung der Begriffe
  8.2.4 MVC in Webapplikationen: genannt »Model 2«
  8.2.5 MVC mit Fokus auf Testbarkeit: Model-View-Presenter

Rheinwerk Computing - Zum Seitenanfang

9 Aspekte und Objektorientierung

9.1 Trennung der Anliegen
  9.1.1 Kapselung von Daten
  9.1.2 Lösungsansätze zur Trennung von Anliegen
9.2 Aspektorientiertes Programmieren
  9.2.1 Integration von aspektorientierten Verfahren in Frameworks
  9.2.2 Bestandteile der Aspekte
  9.2.3 Dynamisches Crosscutting
  9.2.4 Statisches Crosscutting
9.3 Anwendungen der Aspektorientierung
  9.3.1 Zusätzliche Überprüfungen während der Übersetzung
  9.3.2 Logging
  9.3.3 Transaktionen und Profiling
  9.3.4 Design by Contract
  9.3.5 Introductions
  9.3.6 Aspektorientierter Observer
9.4 Annotations
  9.4.1 Zusatzinformation zur Struktur eines Programms
  9.4.2 Annotations im Einsatz in Java und C#
  9.4.3 Beispiele für den Einsatz von Annotations

Rheinwerk Computing - Zum Seitenanfang

A Anhang

A.1 Verwendete Programmiersprachen
  A.1.1 C++
  A.1.2 Java
  A.1.3 C#
  A.1.4 JavaScript
  A.1.5 CLOS
  A.1.6 Python
  A.1.7 Ruby

Rheinwerk Computing - Zum Seitenanfang

B Literaturverzeichnis

B.1 Allgemeine Bücher zur Softwareentwicklung
B.2 Bücher über die UML und die verwendeten Programmiersprachen

Rheinwerk Computing - Zum Seitenanfang

Index

 
  
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Objektorientierte Programmierung






 Objektorientierte
 Programmierung


Zum Katalog: Java ist auch eine Insel






 Java ist auch
 eine Insel


Zum Katalog: Schrödinger programmiert C++






 Schrödinger
 programmiert C++


Zum Katalog: C++ Handbuch






 C++ Handbuch


Zum Katalog: Einstieg in Python






 Einstieg in Python


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo





Copyright © Rheinwerk Verlag GmbH 2006
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Rheinwerk Computing]

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de