Benutzer mit den meisten Antworten
Objekte in der Praxis

Frage
-
Hallo Forum
Seit ein paar Wochen bin ich dabei, mich mittels Video-Training und Büchern in C# einzuarbeiten. Im wesentlichen ist mir das Prinzip der Objekt-Orentierung klar, nur habe ich nicht wirklich den Einblick, wie das in der Praxis gehandhabt wird. Im Lernmaterial wird der Umgang mit Objekten meist anhand simpler, klar verständlicher Beispiele gezeigt. Da ist es kein Problem, mal eben ein paar Objekte einer Klasse "von Hand" zu instanzieren (bzw. die Instanzierung direkt im Code zu implementieren). Aber ist das in der Praxis auch so? Irgendwie hab ich das (womöglich falsche) Gefühl, dass man nicht den ganzen Aufwand der Klassendeklaration treibt, nur um dann ein oder zwei Instanzen davon zu kreieren. Werden nicht viel eher dutzende oder hunderte Objekte instanziert? Falls dem so ist: Wie wird das gehandhabt? Ich habe bisher keine Möglichkeit gefunden, ein Objekt automatisch zu generieren (d.h. mit automatisch generiertem Bezeichner). Benutzt man dazu Collections? Oder gibt es doch eine Möglichkeit, den Objektbezeichner in einem (dynamisch generierten) String zu ergeben?
Vielen Dank für Eure Einsichten und beste Grüsse
- spitfire
Antworten
-
Hallo Spitfire,
wieviele Instanzen man braucht, hängt ganz vom Anwendungsfall ab.
In einer realen Anwendung kommen schnell tausende und abertausende zusammen.
Nur ohne ein konkretes Ziel wirst Du Dich nicht wirklich einarbeiten können.
Trainingsunterlagen gehen von einfachsten Fällen aus, schon um den Leser -
bei dem man kein Vorwissen voraussetzen kann - nicht zu überfordern.
Wenn dort z. B. wie häufig ein Fahrzeug/Flugzeug zur Demonstration von Vererbung etc.
gezeigt wird, hat das bestenfalls ein paar Räder, einen Motor und andere Kleinigkeiten.
Nur besteht selbst ein einfacher Motor in der Praxis aus vielen Teilen.
Und natürlich wird man einen solchen Motor nich in einer C# Codedatei
ablegen, sondern aus einer Datenbank/Datei erzeugen. .NET hat dafür
auch unterschiedlichste Wege, wie Activator.CreateInstance
Für ein richtiges objektorientierte Programmieren ist aber weniger die Erzeugung
das Problem, als sich in dem Entwurf von Klassen und -bibliotheken zu schulen.
Dazu gehört das Verständnis von Entwurfsmustern , die auch für Erzeugen existieren.
Und geht bis hin zu ganzen Muster-Katalogen
Dies übt man aber besser nicht isoliert, denn damit wird man schwerlich
den Grund für dies oder das erkennen (und es soll Entwickler geben, die
solche Muster stumpf abarbeiten, ohne sie wirklich je verstanden zu haben).
Ein besserer Rat: Suche Dir ein Musterprojekt aus, das Deinen Interessen entspricht,
und versuche es in die Praxis umzusetzen. Dabei lernt man am meisten -
denn lernen wirst Du dabei ein Leben lang - ich mache das schon mehr als 2 Jahrzehnte...
Und wenn es nicht zu exotisch ist, wirst Du auch andere Projekte finden,
an denen Du studieren kannst - siehe Sites wie CodePlex , Google Code , SourceForge uam.
Gruß Elmar
- Als Antwort vorgeschlagen Elmar Boye Mittwoch, 10. Februar 2010 09:47
- Als Antwort markiert Robert Breitenhofer Donnerstag, 11. Februar 2010 10:03
Alle Antworten
-
Hallo Spitfire,
wieviele Instanzen man braucht, hängt ganz vom Anwendungsfall ab.
In einer realen Anwendung kommen schnell tausende und abertausende zusammen.
Nur ohne ein konkretes Ziel wirst Du Dich nicht wirklich einarbeiten können.
Trainingsunterlagen gehen von einfachsten Fällen aus, schon um den Leser -
bei dem man kein Vorwissen voraussetzen kann - nicht zu überfordern.
Wenn dort z. B. wie häufig ein Fahrzeug/Flugzeug zur Demonstration von Vererbung etc.
gezeigt wird, hat das bestenfalls ein paar Räder, einen Motor und andere Kleinigkeiten.
Nur besteht selbst ein einfacher Motor in der Praxis aus vielen Teilen.
Und natürlich wird man einen solchen Motor nich in einer C# Codedatei
ablegen, sondern aus einer Datenbank/Datei erzeugen. .NET hat dafür
auch unterschiedlichste Wege, wie Activator.CreateInstance
Für ein richtiges objektorientierte Programmieren ist aber weniger die Erzeugung
das Problem, als sich in dem Entwurf von Klassen und -bibliotheken zu schulen.
Dazu gehört das Verständnis von Entwurfsmustern , die auch für Erzeugen existieren.
Und geht bis hin zu ganzen Muster-Katalogen
Dies übt man aber besser nicht isoliert, denn damit wird man schwerlich
den Grund für dies oder das erkennen (und es soll Entwickler geben, die
solche Muster stumpf abarbeiten, ohne sie wirklich je verstanden zu haben).
Ein besserer Rat: Suche Dir ein Musterprojekt aus, das Deinen Interessen entspricht,
und versuche es in die Praxis umzusetzen. Dabei lernt man am meisten -
denn lernen wirst Du dabei ein Leben lang - ich mache das schon mehr als 2 Jahrzehnte...
Und wenn es nicht zu exotisch ist, wirst Du auch andere Projekte finden,
an denen Du studieren kannst - siehe Sites wie CodePlex , Google Code , SourceForge uam.
Gruß Elmar
- Als Antwort vorgeschlagen Elmar Boye Mittwoch, 10. Februar 2010 09:47
- Als Antwort markiert Robert Breitenhofer Donnerstag, 11. Februar 2010 10:03
-
Hallo Elmar
Herzlichen Dank für Deine umgehende, kompetente und ausführliche Antwort mit den nützlichen Links! Wege wie Activator.CreateInstance sind genau das fehlende Mosaiksteinchen, das ich gesucht hatte!
Als Musterprojekt habe ich mir bereits eine Adress- und Personen-Verwaltung ausgesucht. In SQL-Server steht und funktioniert das Ganze bereits. Das Projekt besteht nun quasi darin, in C# ein User-Interface zu programmieren, so dass auch meine Frau die Datenbank bearbeiten kann - ohne SQL-Kenntnisse. Ado.Net wird da das Instanzieren - soweit ich das bisher verstanden habe - übernehmen; auch wenn ich soweit als möglich (zwecks Lernen und Flexibilität) selbst programmieren möchte anstatt die vorgefertigten Formulare zu nutzen (zumindest versuchen). Daher hat mich interessiert, wie Instanzen denn "abseits" von SQL-Adaptern automatisch erstellt werden können (um einen etwas breiteren Einblick zu erhalten). Nochmals vielen Dank, dass Du mir dabei geholfen hast! :)
Liebe Grüsse
Hanspeter -