Objektorientierte Programmierung: das umfassende Handbuch
Gespeichert in:
Hauptverfasser: | , , |
---|---|
Format: | Buch |
Sprache: | German |
Veröffentlicht: |
Bonn
Rheinwerk
2021
|
Ausgabe: | 5., aktualisierte Auflage |
Schriftenreihe: | Rheinwerk Computing
8317 |
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | Objektorientierte Programmierung verständlich erklärt ; von den Konzepten über den Entwurf bis zur Umsetzung ; Best Practices und guter Code für alle wichtigen OOP-Sprachen 1. Auflage (2006) unter dem Titel: Lahres, Bernhard: Praxisbuch Objektorientierung |
Beschreibung: | 688 Seiten Illustrationen, Diagramme 24 cm x 16.8 cm |
ISBN: | 9783836283175 |
Internformat
MARC
LEADER | 00000nam a22000008cb4500 | ||
---|---|---|---|
001 | BV047176112 | ||
003 | DE-604 | ||
005 | 20211201 | ||
007 | t | ||
008 | 210304s2021 gw a||| |||| 00||| ger d | ||
020 | |a 9783836283175 |c hardcover |9 978-3-8362-8317-5 | ||
035 | |a (OCoLC)1241681971 | ||
035 | |a (DE-599)BVBBV047176112 | ||
040 | |a DE-604 |b ger |e rda | ||
041 | 0 | |a ger | |
044 | |a gw |c XA-DE-NW | ||
049 | |a DE-1043 |a DE-1050 |a DE-2070s |a DE-19 |a DE-355 |a DE-706 |a DE-1046 |a DE-29T |a DE-1051 |a DE-523 |a DE-473 |a DE-859 |a DE-739 |a DE-573 |a DE-B768 |a DE-83 |a DE-384 |a DE-898 |a DE-858 |a DE-1049 |a DE-M347 | ||
084 | |a ST 230 |0 (DE-625)143617: |2 rvk | ||
084 | |a ST 231 |0 (DE-625)143618: |2 rvk | ||
084 | |a DAT 315f |2 stub | ||
084 | |a 004 |2 sdnb | ||
100 | 1 | |a Lahres, Bernhard |e Verfasser |0 (DE-588)132036185 |4 aut | |
240 | 1 | 0 | |a Praxisbuch Objektorientierung |
245 | 1 | 0 | |a Objektorientierte Programmierung |b das umfassende Handbuch |c Bernhard Lahres, Gregor Raýman, Stefan Strich |
250 | |a 5., aktualisierte Auflage | ||
264 | 1 | |a Bonn |b Rheinwerk |c 2021 | |
300 | |a 688 Seiten |b Illustrationen, Diagramme |c 24 cm x 16.8 cm | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
490 | 0 | |a Rheinwerk Computing |v 8317 | |
500 | |a Objektorientierte Programmierung verständlich erklärt ; von den Konzepten über den Entwurf bis zur Umsetzung ; Best Practices und guter Code für alle wichtigen OOP-Sprachen | ||
500 | |a 1. Auflage (2006) unter dem Titel: Lahres, Bernhard: Praxisbuch Objektorientierung | ||
650 | 0 | 7 | |a Objektorientierte Analyse |0 (DE-588)4504809-5 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Softwareentwicklung |0 (DE-588)4116522-6 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Objektorientierte Programmierung |0 (DE-588)4233947-9 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Objektorientiertes Design |0 (DE-588)7732064-5 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Objektorientierung |0 (DE-588)4346172-4 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Aspektorientierte Programmierung |0 (DE-588)4724728-9 |2 gnd |9 rswk-swf |
653 | |a Objektorientierung | ||
653 | |a OOP | ||
653 | |a Objektorientierte Analyse und Design | ||
653 | |a Programmierung | ||
653 | |a Java | ||
653 | |a C# | ||
653 | |a Python | ||
653 | |a C++ | ||
653 | |a UML | ||
653 | |a guter Code | ||
689 | 0 | 0 | |a Softwareentwicklung |0 (DE-588)4116522-6 |D s |
689 | 0 | 1 | |a Objektorientierung |0 (DE-588)4346172-4 |D s |
689 | 0 | 2 | |a Objektorientierte Analyse |0 (DE-588)4504809-5 |D s |
689 | 0 | 3 | |a Objektorientiertes Design |0 (DE-588)7732064-5 |D s |
689 | 0 | 4 | |a Objektorientierte Programmierung |0 (DE-588)4233947-9 |D s |
689 | 0 | |5 DE-604 | |
689 | 1 | 0 | |a Softwareentwicklung |0 (DE-588)4116522-6 |D s |
689 | 1 | 1 | |a Objektorientierung |0 (DE-588)4346172-4 |D s |
689 | 1 | 2 | |a Objektorientierte Analyse |0 (DE-588)4504809-5 |D s |
689 | 1 | 3 | |a Objektorientiertes Design |0 (DE-588)7732064-5 |D s |
689 | 1 | |5 DE-604 | |
689 | 2 | 0 | |a Objektorientierte Programmierung |0 (DE-588)4233947-9 |D s |
689 | 2 | 1 | |a Aspektorientierte Programmierung |0 (DE-588)4724728-9 |D s |
689 | 2 | |5 DE-604 | |
700 | 1 | |a Raýman, Gregor |e Verfasser |0 (DE-588)132036193 |4 aut | |
700 | 1 | |a Strich, Stefan |e Verfasser |0 (DE-588)1079855203 |4 aut | |
710 | 2 | |a Galileo Press |0 (DE-588)1065964404 |4 pbl | |
856 | 4 | 2 | |m Digitalisierung UB Passau - ADAM Catalogue Enrichment |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=032581493&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
943 | 1 | |a oai:aleph.bib-bvb.de:BVB01-032581493 |
Datensatz im Suchindex
_version_ | 1811259939983720448 |
---|---|
adam_text |
Auf einen Blick Auf einen Blick 1 Einleitung. 13 2 Die Basis der Objektorientierung. 27 3 Die Prinzipien des objektorientiertenEntwurfs. 39 4 Die Struktur objektorientierter Software. 65 5 Vererbung und Polymorphie. 155 6 Persistenz. 305 7 Abläufe in einem objektorientierten System . 343 8 Module und Architektur. 511 9 Aspekte und Objektorientierung. 533 10 Objektorientierung am Beispiel: eine Webapplikation in JavaScript. 579
Inhalt Materialien zum Buch . 12 1 Einleitung із 1.1 Was ist Objektorientierung?. 13 1.2 Hallo liebe Zielgruppe. 14 1.3 Was bietet dieses Buch (und was nicht)?. 16 1.3.1 Bausteine des Buches. 16 1.3.2 Crosscutting Concerns: übergreifende Anliegen. 19 1.3.3 Die Rolle von Programmiersprachen. i. 21 1.4 Warum überhaupt Objektorientierung?. 22 1.4.1 Gute Software·. Was ist das eigentlich?. 23 1.4.2 Die Rolle von Prinzipien. 24 1.4.3 Viele mögliche Lösungen für ein Problem. 25 2 Die Basis der Objektorientierung 2.1 Die strukturierte Programmierung als Vorläufer der 27 Objektorientierung. 28 2.2 Die Kapselung von Daten. 31 2.3 Polymorphie. . 33 2.4 Die Vererbung. 34 2.4.1 Vererbung der Spezifikation. 34 2.4.2 Vererbung von Umsetzungen (Implementierungen). 36 3 Die Prinzipien des objektorientierten Entwurfs
39 3.1 Prinzip 1: Prinzip einer einzigen Verantwortung. 40 3.2 Prinzip 2: Trennung der Anliegen. 46
3.3 Prinzip 3: Wiederholungen vermeiden. 48 3.4 Prinzip 4: offen für Erweiterung, geschlossen für Änderung . 51 3.5 Prinzip 5: Trennung der Schnittstelle von der Implementierung. 3.6 54 Prinzip 6: Umkehr der Abhängigkeiten . 57 3.6.1 Umkehrung des KontrolIflusses. 61 3.7 Prinzip 7: mach es testbar. 63 4 Die Struktur objektorientierter Software 65 4.1 Die Basis von allem: das Objekt. 65 4.1.1 4.2 4.3 Eigenschaften von Objekten: Objekte als Datenkapseln. 67 4.1.2 Operationen und Methoden von Objekten. 75 4.1.3 Kontrakte: ein Objekt trägt Verantwortung. 80 4.1.4 Die Identität von Objekten. 82 4.1.5 Objekte haben Beziehungen. 84 Klassen: Objekte haben Gemeinsamkeiten. 85 4.2.1 Klassen sind Modellierungsmittel. 86 4.2.2 Kontrakte: die Spezifikation einer Klasse. 90 4.2.3 Klassen sind Datentypen. 94 4.2.4 Klassen sind Module. 104 4.2.5 Sichtbarkeit von Daten und Methoden. 107 4.2.6
Klassenbezogene Methoden und Attribute. 115 4.2.7 Singleton-Methoden: Methoden für einzelne Objekte . 119 Beziehungen zwischen Objekten. 120 4.3.1 Rollen und Richtung einer Assoziation. 122 4.3.2 Navigierbarkeit. 123 4.3.3 Multiplizität. 124 4.3.4 Qualifikatoren. 128 4.3.5 Beziehungsklassen, Attribute einer Beziehung. 129 4.3.6 Implementierung von Beziehungen. 131 4.3.7 Komposition und Aggregation. 132 4.3.8 Attribute. 136 4.3.9 Beziehungen zwischen Objekten in der Übersicht. 136
4.4 Klassen von Werten und Klassen von Objekten. 4.4.1 137 Werte in den objektorientierten Programmiersprachen. 138 4.4.2 Entwurfsmuster »Fliegengewicht«. 141 4.4.3 Aufzählungen (Enumerations). 144 4.4.4 Identität von Objekten. 147 5 Vererbung und Polymorphie 155 5.1 Die Vererbung der Spezifikation. 155 5.2 5.3 5.4 5.5 5.1.1 Hierarchien von Klassen und Unterklassen. 156 5.1.2 Unterklassen erben die Spezifikation von Oberklassen . 157 5.1.3 Das Prinzip der Ersetzbarkeit. 161 5.1.4 Abstrakte Klassen, konkrete Klassen und Schnittstellenklassen. 167 5.1.5 Vererbung der Spezifikation und das Typsystem. 176 5.1.6 Sichtbarkeit im Rahmen der Vererbung. 184 Polymorphie und ihre Anwendungen. 195 5.2.1 Dynamische Polymorphie am Beispiel. 196 5.2.2 Methoden als Implementierung von Operationen. 202 5.2.3 Anonyme Klassen. 210 5.2.4 Single und Multiple Dispatch. 212 5.2.5 Die Tabelle für virtuelle Methoden. 231 Die Vererbung der Implementierung. 242
5.3.1 Überschreiben von Methoden. 245 5.3.2 Das Problem der instabilen Basisklassen. 252 5.3.3 Problem der Gleichheitsprüfung bei geerbter Implementierung. 258 Mehrfachvererbung. 265 5.4.1 265 Mehrfachvererbung: Möglichkeiten und Probleme. 5.4.2 Delegation statt Mehrfachvererbung. 273 5.4.3 Mixin-Module statt Mehrfachvererbung. 275 5.4.4 Die Problemstellungen der Mehrfachvererbung. 279 Statische und dynamische Klassifizierung. 295 5.5.1 5.5.2 Entwurfsmuster »Strategie« statt dynamischer Klassifizierung. 295 Dynamische Änderung der Klassenzugehörigkeit. 300
6 Persistenz 305 6.1 Serialisierung von Objekten. 305 6.2 6.3 Speicherung in Datenbanken. 306 6.2.1 Relationale Datenbanken. 306 6.2.2 Struktur der relationalen Datenbanken. 307 6.2.3 Begriffsdefinitionen. 307 Abbildung auf relationale Datenbanken. 313 6.3.1 Abbildung von Objekten in relationalen Datenbanken . 313 6.3.2 Abbildung von Beziehungen in relationalen 6.3.3 Abbildung von Vererbungsbeziehungen auf eine Datenbanken. 6.4 relationale Datenbank. 321 Normalisierung und Denormalisierung. 326 6.4.1 Die erste Normalform: es werden einzelne Fakten gespeichert. 6.4.2 6.4.5 7.1 332 Die vierte Normalform: Trennung unabhängiger Relationen. 336 Die fünfte Normalform: einfacher geht’s nicht. 338 Abläufe in einem objektorientierten System 343 Erzeugung von Objekten mit Konstruktoren und Prototypen. 7.1.1 7.2 329 Die dritte Normalform: keine Abhängigkeiten unter den
Nichtschlüsselspalten. 6.4.4 327 Die zweite Normalform: alles hängt vom ganzen Schlüsselab. 6.4.3 7 317 344 Konstruktoren: Klassen als Vorlagen für ihre Exemplare. 344 7.1.2 Prototypen als Vorlagen für Objekte. 348 7.1.3 Entwurfsmuster »Prototyp«. 354 Fabriken als Abstraktionsebene für die Objekterzeugung. 355 7.2.1 Statische Fabriken. 359 7.2.2 Abstrakte Fabriken. 362 7.2.3 Konfigurierbare Fabriken. 367 7.2.4 Registraturen für Objekte. 371
7.3 7.4 7.5 7.2.5 Fabrikmethoden . 7.2.6 Erzeugung von Objekten als Singletons. 384 7.2.7 Dependency Injection. 393 Objekte löschen. 404 7.3.1 404 Speicherbereiche für Objekte. 7.3.2 Was ist eine Garbage Collection?. 406 7.3.3 Umsetzung einer Garbage Collection. 407 Objekte In Aktion und in Interaktion. 419 7.4.1 UML: Diagramme zur Beschreibung von Abläufen. 419 7.4.2 Nachrichten an Objekte. 428 7.4.3 Iteratoren und Generatoren. 429 7.4.4 Funktionsobjekte und ihr Einsatz als Eventhandler. 440 7.4.5 Kopien von Objekten. 450 7.4.6 Sortierung von Objekten. 460 Kontrakte: Objekte als Vertragspartner. 463 7.5.1 Überprüfung von Kontrakten. 464 7.5.2 Übernahme von Verantwortung: Unterklassen in der Pflicht. 7.5.3 8 8.1 479 Exceptions: wenn der Kontrakt nicht eingehalten werden kann. 480 7.6.1
Exceptions in der Übersicht. 480 7.6.2 Exceptions und der Kontrollfluss eines Programms. 487 7.6.3 Exceptions im Einsatz bei Kontraktverletzungen. 493 7.6.4 Exceptions als Teil eines Kontrakts. 497 7.6.5 Der Umgang mit Checked Exceptions. 502 7.6.6 Exceptions in der Zusammenfassung. 510 Module und Architektur 511 Module als konfigurierbare und änderbare Komponenten. 511 8.1.1 Relevanz der Objektorientierung für die Softwarearchitektur. 511 Erweiterung von Modulen . 513 Die Präsentationsschicht: Model, View, Controller (MVC). 520 8.2.1 Das Beobachter-Muster als Basis von MVC. 520 8.2.2 MVC in Smalltalk: Wie es ursprünglich mal war. 521 8.1.2 8.2 465 Prüfungen von Kontrakten bei Entwicklung und Betrieb. 7.6 375
Inhalt 8.2.3 MVC: Klärung der Begriffe. 523 8.2.4 MVC in Webapplikationen·, genannt »Model 2«. 527 8.2.5 MVC mit Fokus auf die Testbarkeit: Model-ViewPresenter . 9 9.1 9.2 Aspekte und Objektorientierung 533 9.1.1 Kapselung von Daten. 537 9.1.2 Lösungsansätze zur Trennung von Anliegen. 538 Aspektorientiertes Programmieren. 545 9.2.2 Integration von aspektorientierten Verfahren in Frameworks. 545 Bestandteile der Aspekte. 546 9.2.3 Dynamisches Crosscutting. 547 9.2.4 Statisches Crosscutting. 554 Anwendungen der Aspektorientierung. 556 9.3.1 Zusätzliche Überprüfungen während der Übersetzung. 9.4 10 ѕзз Trennung der Anliegen. 9.2.1 9.3 529 557 9.3.2 Logging. 558 9.3.3 Transaktionen und Profiling. 559 9.3.4 Design by Contract. 562 9.3.5
Introductions. 565 9.3.6 Aspektorientierter Observer. 567 Annotations. 569 9.4.1 Zusatzinformation zur Struktur eines Programms. 569 9.4.2 Annotations im Einsatz in Java und C#. 571 9.4.3 Beispiele für den Einsatz von Annotations. 573 10 Objektorientierung am Beispiel: eine Webapplikation in JavaScript 579 10.1 581 OOP in JavaScript. 10.1.1 Objekte in JavaScript. 582 10.1.2 Vererbung: JavaScript kennt keine Klassen. 582 10.1.3 Datenkapselung durch Closures. 585
10.2 10.3 10.4 10.5 Die Anwendung im Überblick. 589 10.2.1 Architekturentscheidungen als Basis. 589 10.2.2 Die Komponenten der Anwendung. 593 Das Framework. 594 10.3.1 Controller: zentrale Repräsentation von Diensten. 595 10.3.2 Aktionen: Operationen auf Datenmodellen. 603 10.3.3 Views: verschiedene Sichten auf die Daten. 609 Die Applikation. 612 612 10.4.1 Anwendungsfälle und das Design der Applikation. 10.4.2 Eine eigene Ableitung des Controllers - und der Dienst »teamjesen«. 614 10.4.3 Modelle zur Datenhaltung. 619 10.4.4 Aktionen zur Durchführung von Fachlogik. 623 10.4.5 Views für unterschiedliche Repräsentationen der Daten. 626 Ein Fazit - und was noch übrig bleibt. 636 Anhang 639 A Verwendete Programmiersprachen. 641 В Glossar. 661 C Die Autoren. 675 Index 677 |
adam_txt |
Auf einen Blick Auf einen Blick 1 Einleitung. 13 2 Die Basis der Objektorientierung. 27 3 Die Prinzipien des objektorientiertenEntwurfs. 39 4 Die Struktur objektorientierter Software. 65 5 Vererbung und Polymorphie. 155 6 Persistenz. 305 7 Abläufe in einem objektorientierten System . 343 8 Module und Architektur. 511 9 Aspekte und Objektorientierung. 533 10 Objektorientierung am Beispiel: eine Webapplikation in JavaScript. 579
Inhalt Materialien zum Buch . 12 1 Einleitung із 1.1 Was ist Objektorientierung?. 13 1.2 Hallo liebe Zielgruppe. 14 1.3 Was bietet dieses Buch (und was nicht)?. 16 1.3.1 Bausteine des Buches. 16 1.3.2 Crosscutting Concerns: übergreifende Anliegen. 19 1.3.3 Die Rolle von Programmiersprachen. i. 21 1.4 Warum überhaupt Objektorientierung?. 22 1.4.1 Gute Software·. Was ist das eigentlich?. 23 1.4.2 Die Rolle von Prinzipien. 24 1.4.3 Viele mögliche Lösungen für ein Problem. 25 2 Die Basis der Objektorientierung 2.1 Die strukturierte Programmierung als Vorläufer der 27 Objektorientierung. 28 2.2 Die Kapselung von Daten. 31 2.3 Polymorphie. . 33 2.4 Die Vererbung. 34 2.4.1 Vererbung der Spezifikation. 34 2.4.2 Vererbung von Umsetzungen (Implementierungen). 36 3 Die Prinzipien des objektorientierten Entwurfs
39 3.1 Prinzip 1: Prinzip einer einzigen Verantwortung. 40 3.2 Prinzip 2: Trennung der Anliegen. 46
3.3 Prinzip 3: Wiederholungen vermeiden. 48 3.4 Prinzip 4: offen für Erweiterung, geschlossen für Änderung . 51 3.5 Prinzip 5: Trennung der Schnittstelle von der Implementierung. 3.6 54 Prinzip 6: Umkehr der Abhängigkeiten . 57 3.6.1 Umkehrung des KontrolIflusses. 61 3.7 Prinzip 7: mach es testbar. 63 4 Die Struktur objektorientierter Software 65 4.1 Die Basis von allem: das Objekt. 65 4.1.1 4.2 4.3 Eigenschaften von Objekten: Objekte als Datenkapseln. 67 4.1.2 Operationen und Methoden von Objekten. 75 4.1.3 Kontrakte: ein Objekt trägt Verantwortung. 80 4.1.4 Die Identität von Objekten. 82 4.1.5 Objekte haben Beziehungen. 84 Klassen: Objekte haben Gemeinsamkeiten. 85 4.2.1 Klassen sind Modellierungsmittel. 86 4.2.2 Kontrakte: die Spezifikation einer Klasse. 90 4.2.3 Klassen sind Datentypen. 94 4.2.4 Klassen sind Module. 104 4.2.5 Sichtbarkeit von Daten und Methoden. 107 4.2.6
Klassenbezogene Methoden und Attribute. 115 4.2.7 Singleton-Methoden: Methoden für einzelne Objekte . 119 Beziehungen zwischen Objekten. 120 4.3.1 Rollen und Richtung einer Assoziation. 122 4.3.2 Navigierbarkeit. 123 4.3.3 Multiplizität. 124 4.3.4 Qualifikatoren. 128 4.3.5 Beziehungsklassen, Attribute einer Beziehung. 129 4.3.6 Implementierung von Beziehungen. 131 4.3.7 Komposition und Aggregation. 132 4.3.8 Attribute. 136 4.3.9 Beziehungen zwischen Objekten in der Übersicht. 136
4.4 Klassen von Werten und Klassen von Objekten. 4.4.1 137 Werte in den objektorientierten Programmiersprachen. 138 4.4.2 Entwurfsmuster »Fliegengewicht«. 141 4.4.3 Aufzählungen (Enumerations). 144 4.4.4 Identität von Objekten. 147 5 Vererbung und Polymorphie 155 5.1 Die Vererbung der Spezifikation. 155 5.2 5.3 5.4 5.5 5.1.1 Hierarchien von Klassen und Unterklassen. 156 5.1.2 Unterklassen erben die Spezifikation von Oberklassen . 157 5.1.3 Das Prinzip der Ersetzbarkeit. 161 5.1.4 Abstrakte Klassen, konkrete Klassen und Schnittstellenklassen. 167 5.1.5 Vererbung der Spezifikation und das Typsystem. 176 5.1.6 Sichtbarkeit im Rahmen der Vererbung. 184 Polymorphie und ihre Anwendungen. 195 5.2.1 Dynamische Polymorphie am Beispiel. 196 5.2.2 Methoden als Implementierung von Operationen. 202 5.2.3 Anonyme Klassen. 210 5.2.4 Single und Multiple Dispatch. 212 5.2.5 Die Tabelle für virtuelle Methoden. 231 Die Vererbung der Implementierung. 242
5.3.1 Überschreiben von Methoden. 245 5.3.2 Das Problem der instabilen Basisklassen. 252 5.3.3 Problem der Gleichheitsprüfung bei geerbter Implementierung. 258 Mehrfachvererbung. 265 5.4.1 265 Mehrfachvererbung: Möglichkeiten und Probleme. 5.4.2 Delegation statt Mehrfachvererbung. 273 5.4.3 Mixin-Module statt Mehrfachvererbung. 275 5.4.4 Die Problemstellungen der Mehrfachvererbung. 279 Statische und dynamische Klassifizierung. 295 5.5.1 5.5.2 Entwurfsmuster »Strategie« statt dynamischer Klassifizierung. 295 Dynamische Änderung der Klassenzugehörigkeit. 300
6 Persistenz 305 6.1 Serialisierung von Objekten. 305 6.2 6.3 Speicherung in Datenbanken. 306 6.2.1 Relationale Datenbanken. 306 6.2.2 Struktur der relationalen Datenbanken. 307 6.2.3 Begriffsdefinitionen. 307 Abbildung auf relationale Datenbanken. 313 6.3.1 Abbildung von Objekten in relationalen Datenbanken . 313 6.3.2 Abbildung von Beziehungen in relationalen 6.3.3 Abbildung von Vererbungsbeziehungen auf eine Datenbanken. 6.4 relationale Datenbank. 321 Normalisierung und Denormalisierung. 326 6.4.1 Die erste Normalform: es werden einzelne Fakten gespeichert. 6.4.2 6.4.5 7.1 332 Die vierte Normalform: Trennung unabhängiger Relationen. 336 Die fünfte Normalform: einfacher geht’s nicht. 338 Abläufe in einem objektorientierten System 343 Erzeugung von Objekten mit Konstruktoren und Prototypen. 7.1.1 7.2 329 Die dritte Normalform: keine Abhängigkeiten unter den
Nichtschlüsselspalten. 6.4.4 327 Die zweite Normalform: alles hängt vom ganzen Schlüsselab. 6.4.3 7 317 344 Konstruktoren: Klassen als Vorlagen für ihre Exemplare. 344 7.1.2 Prototypen als Vorlagen für Objekte. 348 7.1.3 Entwurfsmuster »Prototyp«. 354 Fabriken als Abstraktionsebene für die Objekterzeugung. 355 7.2.1 Statische Fabriken. 359 7.2.2 Abstrakte Fabriken. 362 7.2.3 Konfigurierbare Fabriken. 367 7.2.4 Registraturen für Objekte. 371
7.3 7.4 7.5 7.2.5 Fabrikmethoden . 7.2.6 Erzeugung von Objekten als Singletons. 384 7.2.7 Dependency Injection. 393 Objekte löschen. 404 7.3.1 404 Speicherbereiche für Objekte. 7.3.2 Was ist eine Garbage Collection?. 406 7.3.3 Umsetzung einer Garbage Collection. 407 Objekte In Aktion und in Interaktion. 419 7.4.1 UML: Diagramme zur Beschreibung von Abläufen. 419 7.4.2 Nachrichten an Objekte. 428 7.4.3 Iteratoren und Generatoren. 429 7.4.4 Funktionsobjekte und ihr Einsatz als Eventhandler. 440 7.4.5 Kopien von Objekten. 450 7.4.6 Sortierung von Objekten. 460 Kontrakte: Objekte als Vertragspartner. 463 7.5.1 Überprüfung von Kontrakten. 464 7.5.2 Übernahme von Verantwortung: Unterklassen in der Pflicht. 7.5.3 8 8.1 479 Exceptions: wenn der Kontrakt nicht eingehalten werden kann. 480 7.6.1
Exceptions in der Übersicht. 480 7.6.2 Exceptions und der Kontrollfluss eines Programms. 487 7.6.3 Exceptions im Einsatz bei Kontraktverletzungen. 493 7.6.4 Exceptions als Teil eines Kontrakts. 497 7.6.5 Der Umgang mit Checked Exceptions. 502 7.6.6 Exceptions in der Zusammenfassung. 510 Module und Architektur 511 Module als konfigurierbare und änderbare Komponenten. 511 8.1.1 Relevanz der Objektorientierung für die Softwarearchitektur. 511 Erweiterung von Modulen . 513 Die Präsentationsschicht: Model, View, Controller (MVC). 520 8.2.1 Das Beobachter-Muster als Basis von MVC. 520 8.2.2 MVC in Smalltalk: Wie es ursprünglich mal war. 521 8.1.2 8.2 465 Prüfungen von Kontrakten bei Entwicklung und Betrieb. 7.6 375
Inhalt 8.2.3 MVC: Klärung der Begriffe. 523 8.2.4 MVC in Webapplikationen·, genannt »Model 2«. 527 8.2.5 MVC mit Fokus auf die Testbarkeit: Model-ViewPresenter . 9 9.1 9.2 Aspekte und Objektorientierung 533 9.1.1 Kapselung von Daten. 537 9.1.2 Lösungsansätze zur Trennung von Anliegen. 538 Aspektorientiertes Programmieren. 545 9.2.2 Integration von aspektorientierten Verfahren in Frameworks. 545 Bestandteile der Aspekte. 546 9.2.3 Dynamisches Crosscutting. 547 9.2.4 Statisches Crosscutting. 554 Anwendungen der Aspektorientierung. 556 9.3.1 Zusätzliche Überprüfungen während der Übersetzung. 9.4 10 ѕзз Trennung der Anliegen. 9.2.1 9.3 529 557 9.3.2 Logging. 558 9.3.3 Transaktionen und Profiling. 559 9.3.4 Design by Contract. 562 9.3.5
Introductions. 565 9.3.6 Aspektorientierter Observer. 567 Annotations. 569 9.4.1 Zusatzinformation zur Struktur eines Programms. 569 9.4.2 Annotations im Einsatz in Java und C#. 571 9.4.3 Beispiele für den Einsatz von Annotations. 573 10 Objektorientierung am Beispiel: eine Webapplikation in JavaScript 579 10.1 581 OOP in JavaScript. 10.1.1 Objekte in JavaScript. 582 10.1.2 Vererbung: JavaScript kennt keine Klassen. 582 10.1.3 Datenkapselung durch Closures. 585
10.2 10.3 10.4 10.5 Die Anwendung im Überblick. 589 10.2.1 Architekturentscheidungen als Basis. 589 10.2.2 Die Komponenten der Anwendung. 593 Das Framework. 594 10.3.1 Controller: zentrale Repräsentation von Diensten. 595 10.3.2 Aktionen: Operationen auf Datenmodellen. 603 10.3.3 Views: verschiedene Sichten auf die Daten. 609 Die Applikation. 612 612 10.4.1 Anwendungsfälle und das Design der Applikation. 10.4.2 Eine eigene Ableitung des Controllers - und der Dienst »teamjesen«. 614 10.4.3 Modelle zur Datenhaltung. 619 10.4.4 Aktionen zur Durchführung von Fachlogik. 623 10.4.5 Views für unterschiedliche Repräsentationen der Daten. 626 Ein Fazit - und was noch übrig bleibt. 636 Anhang 639 A Verwendete Programmiersprachen. 641 В Glossar. 661 C Die Autoren. 675 Index 677 |
any_adam_object | 1 |
any_adam_object_boolean | 1 |
author | Lahres, Bernhard Raýman, Gregor Strich, Stefan |
author_GND | (DE-588)132036185 (DE-588)132036193 (DE-588)1079855203 |
author_facet | Lahres, Bernhard Raýman, Gregor Strich, Stefan |
author_role | aut aut aut |
author_sort | Lahres, Bernhard |
author_variant | b l bl g r gr s s ss |
building | Verbundindex |
bvnumber | BV047176112 |
classification_rvk | ST 230 ST 231 |
classification_tum | DAT 315f |
ctrlnum | (OCoLC)1241681971 (DE-599)BVBBV047176112 |
discipline | Informatik |
discipline_str_mv | Informatik |
edition | 5., aktualisierte Auflage |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>00000nam a22000008cb4500</leader><controlfield tag="001">BV047176112</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20211201</controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">210304s2021 gw a||| |||| 00||| ger d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9783836283175</subfield><subfield code="c">hardcover</subfield><subfield code="9">978-3-8362-8317-5</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)1241681971</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV047176112</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rda</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">ger</subfield></datafield><datafield tag="044" ind1=" " ind2=" "><subfield code="a">gw</subfield><subfield code="c">XA-DE-NW</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-1043</subfield><subfield code="a">DE-1050</subfield><subfield code="a">DE-2070s</subfield><subfield code="a">DE-19</subfield><subfield code="a">DE-355</subfield><subfield code="a">DE-706</subfield><subfield code="a">DE-1046</subfield><subfield code="a">DE-29T</subfield><subfield code="a">DE-1051</subfield><subfield code="a">DE-523</subfield><subfield code="a">DE-473</subfield><subfield code="a">DE-859</subfield><subfield code="a">DE-739</subfield><subfield code="a">DE-573</subfield><subfield code="a">DE-B768</subfield><subfield code="a">DE-83</subfield><subfield code="a">DE-384</subfield><subfield code="a">DE-898</subfield><subfield code="a">DE-858</subfield><subfield code="a">DE-1049</subfield><subfield code="a">DE-M347</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 230</subfield><subfield code="0">(DE-625)143617:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 231</subfield><subfield code="0">(DE-625)143618:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">DAT 315f</subfield><subfield code="2">stub</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">004</subfield><subfield code="2">sdnb</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Lahres, Bernhard</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)132036185</subfield><subfield code="4">aut</subfield></datafield><datafield tag="240" ind1="1" ind2="0"><subfield code="a">Praxisbuch Objektorientierung</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Objektorientierte Programmierung</subfield><subfield code="b">das umfassende Handbuch</subfield><subfield code="c">Bernhard Lahres, Gregor Raýman, Stefan Strich</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">5., aktualisierte Auflage</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Bonn</subfield><subfield code="b">Rheinwerk</subfield><subfield code="c">2021</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">688 Seiten</subfield><subfield code="b">Illustrationen, Diagramme</subfield><subfield code="c">24 cm x 16.8 cm</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="490" ind1="0" ind2=" "><subfield code="a">Rheinwerk Computing</subfield><subfield code="v">8317</subfield></datafield><datafield tag="500" ind1=" " ind2=" "><subfield code="a">Objektorientierte Programmierung verständlich erklärt ; von den Konzepten über den Entwurf bis zur Umsetzung ; Best Practices und guter Code für alle wichtigen OOP-Sprachen</subfield></datafield><datafield tag="500" ind1=" " ind2=" "><subfield code="a">1. Auflage (2006) unter dem Titel: Lahres, Bernhard: Praxisbuch Objektorientierung</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Objektorientierte Analyse</subfield><subfield code="0">(DE-588)4504809-5</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Softwareentwicklung</subfield><subfield code="0">(DE-588)4116522-6</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Objektorientierte Programmierung</subfield><subfield code="0">(DE-588)4233947-9</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Objektorientiertes Design</subfield><subfield code="0">(DE-588)7732064-5</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Objektorientierung</subfield><subfield code="0">(DE-588)4346172-4</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Aspektorientierte Programmierung</subfield><subfield code="0">(DE-588)4724728-9</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Objektorientierung</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">OOP</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Objektorientierte Analyse und Design</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Programmierung</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Java</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">C#</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Python</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">C++</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">UML</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">guter Code</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Softwareentwicklung</subfield><subfield code="0">(DE-588)4116522-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><subfield code="a">Objektorientierung</subfield><subfield code="0">(DE-588)4346172-4</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="2"><subfield code="a">Objektorientierte Analyse</subfield><subfield code="0">(DE-588)4504809-5</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="3"><subfield code="a">Objektorientiertes Design</subfield><subfield code="0">(DE-588)7732064-5</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="4"><subfield code="a">Objektorientierte Programmierung</subfield><subfield code="0">(DE-588)4233947-9</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="1" ind2="0"><subfield code="a">Softwareentwicklung</subfield><subfield code="0">(DE-588)4116522-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2="1"><subfield code="a">Objektorientierung</subfield><subfield code="0">(DE-588)4346172-4</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2="2"><subfield code="a">Objektorientierte Analyse</subfield><subfield code="0">(DE-588)4504809-5</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2="3"><subfield code="a">Objektorientiertes Design</subfield><subfield code="0">(DE-588)7732064-5</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="2" ind2="0"><subfield code="a">Objektorientierte Programmierung</subfield><subfield code="0">(DE-588)4233947-9</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="2" ind2="1"><subfield code="a">Aspektorientierte Programmierung</subfield><subfield code="0">(DE-588)4724728-9</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="2" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Raýman, Gregor</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)132036193</subfield><subfield code="4">aut</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Strich, Stefan</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)1079855203</subfield><subfield code="4">aut</subfield></datafield><datafield tag="710" ind1="2" ind2=" "><subfield code="a">Galileo Press</subfield><subfield code="0">(DE-588)1065964404</subfield><subfield code="4">pbl</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Passau - ADAM Catalogue Enrichment</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=032581493&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="943" ind1="1" ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-032581493</subfield></datafield></record></collection> |
id | DE-604.BV047176112 |
illustrated | Illustrated |
index_date | 2024-07-03T16:44:37Z |
indexdate | 2024-09-26T12:01:24Z |
institution | BVB |
institution_GND | (DE-588)1065964404 |
isbn | 9783836283175 |
language | German |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-032581493 |
oclc_num | 1241681971 |
open_access_boolean | |
owner | DE-1043 DE-1050 DE-2070s DE-19 DE-BY-UBM DE-355 DE-BY-UBR DE-706 DE-1046 DE-29T DE-1051 DE-523 DE-473 DE-BY-UBG DE-859 DE-739 DE-573 DE-B768 DE-83 DE-384 DE-898 DE-BY-UBR DE-858 DE-1049 DE-M347 |
owner_facet | DE-1043 DE-1050 DE-2070s DE-19 DE-BY-UBM DE-355 DE-BY-UBR DE-706 DE-1046 DE-29T DE-1051 DE-523 DE-473 DE-BY-UBG DE-859 DE-739 DE-573 DE-B768 DE-83 DE-384 DE-898 DE-BY-UBR DE-858 DE-1049 DE-M347 |
physical | 688 Seiten Illustrationen, Diagramme 24 cm x 16.8 cm |
publishDate | 2021 |
publishDateSearch | 2021 |
publishDateSort | 2021 |
publisher | Rheinwerk |
record_format | marc |
series2 | Rheinwerk Computing |
spelling | Lahres, Bernhard Verfasser (DE-588)132036185 aut Praxisbuch Objektorientierung Objektorientierte Programmierung das umfassende Handbuch Bernhard Lahres, Gregor Raýman, Stefan Strich 5., aktualisierte Auflage Bonn Rheinwerk 2021 688 Seiten Illustrationen, Diagramme 24 cm x 16.8 cm txt rdacontent n rdamedia nc rdacarrier Rheinwerk Computing 8317 Objektorientierte Programmierung verständlich erklärt ; von den Konzepten über den Entwurf bis zur Umsetzung ; Best Practices und guter Code für alle wichtigen OOP-Sprachen 1. Auflage (2006) unter dem Titel: Lahres, Bernhard: Praxisbuch Objektorientierung Objektorientierte Analyse (DE-588)4504809-5 gnd rswk-swf Softwareentwicklung (DE-588)4116522-6 gnd rswk-swf Objektorientierte Programmierung (DE-588)4233947-9 gnd rswk-swf Objektorientiertes Design (DE-588)7732064-5 gnd rswk-swf Objektorientierung (DE-588)4346172-4 gnd rswk-swf Aspektorientierte Programmierung (DE-588)4724728-9 gnd rswk-swf Objektorientierung OOP Objektorientierte Analyse und Design Programmierung Java C# Python C++ UML guter Code Softwareentwicklung (DE-588)4116522-6 s Objektorientierung (DE-588)4346172-4 s Objektorientierte Analyse (DE-588)4504809-5 s Objektorientiertes Design (DE-588)7732064-5 s Objektorientierte Programmierung (DE-588)4233947-9 s DE-604 Aspektorientierte Programmierung (DE-588)4724728-9 s Raýman, Gregor Verfasser (DE-588)132036193 aut Strich, Stefan Verfasser (DE-588)1079855203 aut Galileo Press (DE-588)1065964404 pbl Digitalisierung UB Passau - ADAM Catalogue Enrichment application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=032581493&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Lahres, Bernhard Raýman, Gregor Strich, Stefan Objektorientierte Programmierung das umfassende Handbuch Objektorientierte Analyse (DE-588)4504809-5 gnd Softwareentwicklung (DE-588)4116522-6 gnd Objektorientierte Programmierung (DE-588)4233947-9 gnd Objektorientiertes Design (DE-588)7732064-5 gnd Objektorientierung (DE-588)4346172-4 gnd Aspektorientierte Programmierung (DE-588)4724728-9 gnd |
subject_GND | (DE-588)4504809-5 (DE-588)4116522-6 (DE-588)4233947-9 (DE-588)7732064-5 (DE-588)4346172-4 (DE-588)4724728-9 |
title | Objektorientierte Programmierung das umfassende Handbuch |
title_alt | Praxisbuch Objektorientierung |
title_auth | Objektorientierte Programmierung das umfassende Handbuch |
title_exact_search | Objektorientierte Programmierung das umfassende Handbuch |
title_exact_search_txtP | Objektorientierte Programmierung das umfassende Handbuch |
title_full | Objektorientierte Programmierung das umfassende Handbuch Bernhard Lahres, Gregor Raýman, Stefan Strich |
title_fullStr | Objektorientierte Programmierung das umfassende Handbuch Bernhard Lahres, Gregor Raýman, Stefan Strich |
title_full_unstemmed | Objektorientierte Programmierung das umfassende Handbuch Bernhard Lahres, Gregor Raýman, Stefan Strich |
title_short | Objektorientierte Programmierung |
title_sort | objektorientierte programmierung das umfassende handbuch |
title_sub | das umfassende Handbuch |
topic | Objektorientierte Analyse (DE-588)4504809-5 gnd Softwareentwicklung (DE-588)4116522-6 gnd Objektorientierte Programmierung (DE-588)4233947-9 gnd Objektorientiertes Design (DE-588)7732064-5 gnd Objektorientierung (DE-588)4346172-4 gnd Aspektorientierte Programmierung (DE-588)4724728-9 gnd |
topic_facet | Objektorientierte Analyse Softwareentwicklung Objektorientierte Programmierung Objektorientiertes Design Objektorientierung Aspektorientierte Programmierung |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=032581493&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT lahresbernhard praxisbuchobjektorientierung AT raymangregor praxisbuchobjektorientierung AT strichstefan praxisbuchobjektorientierung AT galileopress praxisbuchobjektorientierung AT lahresbernhard objektorientierteprogrammierungdasumfassendehandbuch AT raymangregor objektorientierteprogrammierungdasumfassendehandbuch AT strichstefan objektorientierteprogrammierungdasumfassendehandbuch AT galileopress objektorientierteprogrammierungdasumfassendehandbuch |