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

Inhaltsverzeichnis
1 Einleitung
2 Die Basis der Objektorientierung
3 Die Prinzipien des objektorientierten Entwurfs
4 Die Struktur objektorientierter Software
5 Vererbung und Polymorphie
6 Persistenz
7 Abläufe in einem objektorientierten System
8 Module und Architektur
9 Aspekte und Objektorientierung
10 Objektorientierung am Beispiel: Eine Web-Applikation mit PHP 5 und Ajax
A Verwendete Programmiersprachen
B Literaturverzeichnis
Stichwort
Ihre Meinung?

Spacer
Objektorientierte Programmierung von Bernhard Lahres, Gregor Rayman
Das umfassende Handbuch
Buch: Objektorientierte Programmierung

Objektorientierte Programmierung
2., aktualisierte und erweiterte Auflage, geb.
656 S., 49,90 Euro
Rheinwerk Computing
ISBN 978-3-8362-1401-8
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.

Nutzen Sie die HTML-Version 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

Inhaltsverzeichnis

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 des Buchs
1.3.2 Crosscutting Concerns: übergreifende Anliegen
1.3.3 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

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

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

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 Multiplizitä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

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

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

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

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

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

10 Objektorientierung am Beispiel: Eine Web-Applikation mit PHP 5 und Ajax

10.1 OOP in PHP

10.1.1 Klassen in PHP
10.1.2 Dynamische Natur von PHP

10.2 Das entwickelte Framework – Trennung der Anliegen – Model View Controller

10.2.1 Trennung der Daten von der Darstellung

10.3 Ein Dienst in PHP

10.3.1 Datenmodell
10.3.2 Dienste – Version 1

10.4 Ein Klient in Ajax

10.4.1 Bereitstellung der Daten
10.4.2 Darstellung der Daten

10.5 Ein Container für Dienste in PHP

10.5.1 Dispatcher
10.5.2 Fabrik
10.5.3 Dependency Injection
10.5.4 Sicherheit

10.6 Ein Klient ohne JavaScript

10.7 Was noch übrigbleibt

Rheinwerk Computing

A Verwendete Programmiersprachen

A.1 C++

A.2 Java

A.3 C#

A.4 JavaScript

A.5 CLOS

A.6 Python

A.7 Ruby

Rheinwerk Computing

B Literaturverzeichnis

B.1 Allgemeine Bücher zur Softwareentwicklung

B.2 Bücher über die UML und die verwendeten Programmiersprachen



Ihre Meinung

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.

  Zum Rheinwerk-Shop
Neuauflage: Objektorientierte Programmierung






Neuauflage:
Objektorientierte Programmierung

Jetzt Buch bestellen


 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Rheinwerk-Shop: Java ist auch eine Insel






 Java ist auch
 eine Insel


Zum Rheinwerk-Shop: Schrödinger programmiert C++






 Schrödinger
 programmiert C++


Zum Rheinwerk-Shop: C++ Handbuch






 C++ Handbuch


Zum Rheinwerk-Shop: Einstieg in Python






 Einstieg in Python


Zum Rheinwerk-Shop: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2009
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.


Nutzungsbestimmungen | Datenschutz | Impressum

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

Cookie-Einstellungen ändern