Zerbrechliche Grundklasse

Das zerbrechliche Grundklassenproblem ist ein grundsätzliches architektonisches Problem von objektorientierten Programmiersystemen, wo Grundklassen (Superklassen) "zerbrechlich" betrachtet werden, weil anscheinend sichere Modifizierungen zu einer Grundklasse, wenn geerbt, durch die abgeleiteten Klassen, die abgeleiteten Klassen veranlassen können schlecht zu funktionieren. Der Programmierer kann nicht bestimmen, ob eine Grundklassenänderung einfach durch das Überprüfen in der Isolierung der Methoden der Grundklasse sicher ist.

Eine mögliche Lösung ist, Beispiel-Variablen privat zu ihrer Definieren-Klasse und Kraft-Unterklassen zu machen, um Zugriffsberechtigte zu verwenden, um Superklassenstaaten zu modifizieren. Eine Sprache konnte es auch machen, so dass Unterklassen kontrollieren können, der geerbt hat, werden Methoden öffentlich ausgestellt. Diese Änderungen halten Unterklassen davon ab, sich auf Durchführungsdetails von Superklassen zu verlassen, und erlauben Unterklassen, nur jene Superklassenmethoden auszustellen, die auf sich anwendbar sind.

Eine andere Alternativlösung konnte sein, eine Schnittstelle statt der Superklasse zu haben.

Lösungen

  • Ziel-C hat Kategorien sowie Nichtzerbrechliche Beispiel-Variablen
  • Bildendes Pascal missbilligt Superklassenanrufe
  • Java erlaubt Erbe, durch das Beschriften der Klassenbehauptung mit dem Schlüsselwort "" verboten zu werden. Im Buch das Wirksame Java schreibt Autor Joshua Bloch (im Artikel 17), dass Programmierer "Entwickeln sollten und Dokument für das Erbe, oder es verbieten".
  • C# und VB.NET wie Java haben "" und "" Klassenbehauptungsschlüsselwörter, um Erbe zu verbieten.

Siehe auch

  • Zerbrechliches binäres Schnittstelle-Problem
  • Durchführungserbe
  • Erbe-Semantik
  • Softwarebrüchigkeit
  • Virtuelles Erbe (objektorientierte Programmierung)

Links


Gemeinschaft von Gated / Die Super Drive
Impressum & Datenschutz