Wie erstellt man optimal seine Klassen?

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Wie erstellt man optimal seine Klassen?

    Wie sieht der optimale Aufbau einer Klassen aus?

    Beispiel 1:

    VB.NET-Quellcode

    1. Public Class a1
    2. Public daten As Integer
    3. End Class
    4. Public Class a2
    5. Public a3 As a1 = New a1
    6. Public wert As Integer = a3.daten + 1
    7. End Class


    Beispiel 2:

    VB.NET-Quellcode

    1. Public Class b1
    2. Public daten As Integer
    3. End Class
    4. Public Class b2
    5. Inherits b1
    6. Public wert As Integer = daten + 1
    7. End Class


    Beispiel 3:

    VB.NET-Quellcode

    1. Partial Public Class c1
    2. Public daten As Integer
    3. End Class
    4. Partial Public Class c1
    5. Public wert As Integer = daten + 1
    6. End Class


    Bisher mache ich es immer so wie es mir gerade in den Kopf kommt.
    Das erscheint mir aber nicht der optimale Weg zu sein.
    Aktuelles Projekt: Z80 Disassembler für Schneider/Amstrad CPC :love:
    Beispiel 3 ist eine Klasse und nicht mehr. Es ist das gleiche wie

    VB.NET-Quellcode

    1. Partial Public Class c1
    2. Public daten As Integer
    3. Public wert As Integer = daten + 1
    4. End Class

    Die anderen sind Grundlage der Überlegung FCoI, siehe hier. Du solltest Dir da also u.a. die Frage stellen: Ist B eine spezialisierte Unterart von A, die aber sonst alle Eigenschaften vom A uneingeschränkt übernehmen kann? Wenn ja, dann ist Beispiel 2 normalerweise sinnvoll (Vererbung). Aber meist auch nur dann, wenn es auch andere Klassen gibt, die von A erben. Hat man eine Basisklasse, aber nur eine abgeleitete, sollte man überlegen, ob es sich rentiert, diese 2 Klassen zu behalten. Ggf. kann man B in A integrieren.
    Ist B keine spezialisierte Art von A, würde ich wohl Beispiel 1 verwenden (also theoretisch bei der Formulierung »enthält B ein A«), weil B zwar A braucht, aber kein Spezialtyp von A ist.
    Klassisches Theoriebeispiel: Motor
    Für Beispiel 1: Ein Auto enthält/hat einen Motor, ein Auto ist aber selber kein Motor.
    Für Beispiel 2: Ein Benzinmotor, Elektromotor, Flugzeugmotor ist ein Motor, beinhaltet also keinen Motor.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Es gibt nicht den einen optimalen Weg, viele Wege führen nach Rom.
    Je nach dem, was Du machen willst, musst Du die Klassen speziell anlegen.
    Es gibt da sehr unterschiedliche Klassen:
    Formen und UserControls, Interfaces, Hardware-Wrapper, serialisierbare Datenklassen usw.
    Alle haben ihre Spezifika, die bei anderen Klassen nicht unbedingt greifen.
    Entwickle Deinen Stil, mach Dir Design-Regeln.
    Was sagen und machen Deine Kollegen?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    oobdoo schrieb:

    Das war nur eine allgemeine Frage.
    Wie gsagt: Auf die allgemeine Frage kann nur allgemein geantwortet werden - sowas wie: "Machs halt richtig", oder "lern programmieren", oder (my favorite) "lern Fragen stellen".

    Besser wäre, wenn du je im konkreten Fall fragst.
    Da fragste vielleicht drei oder viermal, aber dann bekommst du auch sinnvolle Antworten, bei denen du (und andere auch) was lernen können.