Galileo Computing < openbook > Galileo 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
Galileo Computing
ISBN 3-89842-624-6

>>Jetzt bestellen!
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

Galileo 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

Galileo 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)

Galileo 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

Galileo 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

Galileo 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

Galileo 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

Galileo 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

Galileo 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

Galileo 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

Galileo 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

Galileo Computing - Zum Seitenanfang

B Literaturverzeichnis

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

Galileo Computing - Zum Seitenanfang

Index

 
  
  Zum Katalog
Zum Katalog: Praxisbuch Objektorientierung
Praxisbuch Objektorientierung
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: UML 2.0






 UML 2.0


Zum Katalog: Visual C# 2005






 Visual C# 2005


Zum Katalog: Java ist auch eine Insel






 Java ist auch eine
 Insel


Zum Katalog: C++ von A bis Z






 C++ von A bis Z


Zum Katalog: JavaScript






 JavaScript


Zum Katalog: Recht für Softwareentwickler






 Recht für
 Softwareentwickler


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo





Copyright © Galileo Press 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.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de