Diskussion:Arbeiten mit .NET: OOP/ Einführung/ Der Vorteil von Objekten
Abschnitt hinzufügenIch persönlich finde den Ansatz, OOP mit der "Autometapher" zu erklären, verwirrend: Es gibt zwar einige (meiner Meinung nach oberflächliche) Gemeinsamkeiten, diese erfassen aber das Wesen bzw. den Sinn der OOP nicht. Z.B. kann man eine Klasse zwar als "Bauplan" für ein Objekt beschreiben, das ist aber eigentlich ein sehr technischer Aspekt (die Runtime "baut" ein Objekt gemäß einer Klassendefinition), und verdeutlicht nicht wirklich, warum man überhaupt "Objekte" "bauen" möchte.
Ich würde es sinnvoller finden, OOP quasi "geschichtlich" als Weiterentwicklung der strukturierten Programmierung herzuleiten: Eine der Kernideen war ja ursprünglich, Daten und Methoden zu kapseln und als Einheit zu behandeln, um einen konsistenten Zugriff auf die Datenstruktur zu gewährleisten und Implementierungsdetails verbergen zu können - im Gegensatz zum strukturierten Ansatz, wo alle Datenfelder einer Struktur öffentlich waren und die Funktionen, die diese Daten bearbeiteten, davon getrennt entwickelt wurden. Dieser Aspekt der OOP wird durch die "Autometapher" imo überhaupt nicht beleuchtet.
Ich glaube, daß für jemanden, der programmieren lernen will, diese Herleitung leicht verständlich ist und den Sinn der OOP deutlicher macht als der vorliegende Ansatz. Ich würde dementsprechend ein "praktischeres" Beispiel vorschlagen: Entweder aus der Grafikprogrammierung (z.B. Zeichenprogramm, das zuerst nur Linien, dann aber auch andere Figuren darstellen kann) oder auch z.B. Kommunikation (Verschiedene Protokolle o.ä.)
MartinStettner 18:10, 17. Jun. 2011 (CEST)
- Ein guter Gedankengang, den Du da äußerst. Als Programmierer, der auch die strukturierte Programmierung kennt, fände ich die Darstellung der "Differenz" von strukturierter Programmierung zu OOP ausreichend. Aber jemand der sie (strukturierte Programmierung) nicht kennt, sollte sich heute damit nicht unnötigerweise befassen müssen. Insofern wäre es in meinen Augen erstrebenswert von Anfang an die "reine Lehre" zu propagieren. -- ThePacker 23:10, 17. Jun. 2011 (CEST)