8 Stimmen

Welche Überlegungen standen hinter der Entwicklung der objektorientierten Programmierung?

Ich habe es hier mit einigen echten Neinsagern zu tun, und ich versuche, ihnen den Grund zu nennen, warum OOP überhaupt entwickelt wurde. Mir ist klar, dass OOP nicht für alle Probleme und Situationen perfekt ist, aber es wurde aus einem bestimmten Grund entwickelt...

Ich würde vermuten, dass einige dieser Gründe sein werden:

  • Instandhaltbarkeit
  • Wiederverwendbarkeit
  • Dokumentierbarkeit
  • Abstraktion komplexer Technologien
  • Dynamische Erweiterung zur Laufzeit...
  • Wahrscheinlich gibt es Dinge, die mir noch gar nicht bewusst sind...

Aber ich habe wirklich nicht viel, um das zu untermauern, und ich habe mich gefragt, warum OOP überhaupt entwickelt wurde, und wie es entstanden ist.

Was wollten die Menschen, die OOP entwickelt haben, damit erreichen? Was hat sie dazu gebracht, OOP zu entwickeln?

1voto

Cruachan Punkte 15597

Abgesehen von der Theorie war der eigentliche Grund für die Verbreitung von OOPS die Einführung von Windows-basierten Benutzeroberflächen.

Wenn Sie nur eine DOS- oder Mainframe-Terminalanwendung programmieren, dann brauchen Sie OOP wirklich nicht, es könnte zwar nützlich sein, aber es gibt keinen zwingenden Grund, es einzusetzen. Sobald man jedoch anfängt, für eine beliebige "wimp"-basierte grafische Benutzeroberfläche zu programmieren, ist es sehr schwierig, diese ohne OOP effizient zu handhaben, vor allem, sobald man über ein einfaches System hinausgeht.

Ich habe mir die Zähne an der Mac-Programmierung ausgebissen, als Pascal die Standardsprache war. Man musste seine eigene Haupt-Ereignisschleife handhaben und solche Dinge tun, wie durch die Rechtecke gehen, um ein Fenster neu zu zeichnen, wenn es im Hintergrund durch das davor liegende Windows verdeckt war. Folglich waren große Teile selbst des einfachsten Programms mit der grundlegenden Infrastruktur befasst, und es war keine triviale Aufgabe, die eigenen Schnittstellen sauber zu halten, damit der Code nicht zu einem verworrenen Spaghetti verkommt. Das Gleiche galt für Windows (lesen Sie eines der frühen Bücher von Charles Petzold über die Programmierung von Windows) und die verschiedenen anderen grafischen Benutzeroberflächen, die damals auf dem Markt waren.

Die Einführung von OOP hat dies erheblich vereinfacht, da OOP sich hervorragend für grafische Benutzeroberflächen eignet. Heutzutage betrachten wir dies als selbstverständlich und natürlich, aber das war nicht immer so, und sicherlich wurde die Einführung von OOP damals als eine Art große Herausforderung für Programmierer angesehen. Das Ergebnis war jedoch, dass alle neuen Programmierer seit den späten 90er Jahren mit OOP aufgewachsen sind, weil es für den Umgang mit grafischen Benutzeroberflächen wirklich notwendig ist, was dazu führte, dass es so ziemlich die Standardmethode für die Programmierung ist und sich folglich weit über die Benutzeroberfläche hinaus verbreitet hat.

0voto

ewernli Punkte 37122

Ich denke, dass diese Tatsachen (oder sollte ich sagen Annahmen?) der Grund für die Einführung von OOP sind:

  • wir denken von Natur aus in Begriffen von Objekten/Dingen
  • Objekte sind gut, um die Realität zu erfassen/zu modellieren
  • Objekte können während des gesamten Entwicklungsprozesses (Anforderungen, Analyse, Implementierung) einheitlich verwendet werden.

Ob das wirklich so ist, ist eine andere Frage. Siehe Denken wir in Begriffen von Objekten .

Die Essenz von OOP ist

  • Objekt = Identität + Daten + Verhalten

Welche Funktionen die OOP-Sprache genau bietet, ist ebenfalls eine andere Frage. Siehe die Wikipedia-Seite .

PS: Ein Großteil des so genannten objektorientierten Codes ist in Wirklichkeit als objektorientierter Code getarnter prozeduraler Code. Das Hauptproblem mit OOP, wie wir es kennen, ist, dass es Erfahrung erfordert, die Zusammenarbeit zwischen Objekten zu erfassen, wenn eine Verantwortung nicht trivial einem Objekt zugewiesen werden kann.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X