vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Problem mit OPP Klassenaufbau 
Autor: Micke
Datum: 31.08.12 12:39

Hi Hannibal,

Interface IErinnerungen --> in deinem Fall hinfällig, ErinnerungsBasis hat alles in sich.
ErinnerungsBasis.Erinnerungsdatum - glaube nicht daß es overridable sein muß.

Private myErinnerungsdatum As Date = #1/1/1900#
Private myErinnerungstext As String = ""
--> lass die variablen auf nothing, die werte sind murks


so zu deiner eigentlichen Frage
Geburtstag.Erinnerungstext.Get --> das scheint klar zu sein

Geburtstag.Erinnerungstext.Set --> du meinst wenn hier ein zusammengesetzter string reinkommt, wie darüber bspw. auch der name sauber gesetzt wird ?
Du hast ja die zusammensetzungsregel im get definiert, was fehlt dir da noch ? string.split wird für sowas gern genutzt.

Micke

Beitrag wurde zuletzt am 31.08.12 um 12:41:01 editiert.

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Problem mit OOP Klassenaufbau 
Autor: Hannibal
Datum: 30.08.12 20:44

Hallo,

will ein Erinnerungsprogramm für Geburtstage usw. schreiben
Leider hab ich ein Problem und weiß nicht wie ich die Klassen genau aufbauen soll.
Ich will ein Interface erstellen, aus dem ich dann eine Generische Klasse erstellen will mit Timerlogik usw.
Ich brauche also einmal einen Erinnerungstext bei normalen Erinnerungen brauche und bei Geburtstagen aber Vorname und Nachname, die ja dann den Erinnerungstext darstellen.
Kann Vor- und Nachname natürlich intern als Erinnerungstext zusammenbauen, aber umgekehrt wird es schon schwieriger. Wie erreiche ich, dass der Erinnerungstext immer richtig gesplittet wird?
Brauche einen kleinen Denkanstoß, hier mal ein kleines Beispiel wie ich mir das ungefähr vorstelle.
 
Public Interface IErinnerungen
    Property Erinnerungsdatum As Date
    Property Erinnerungstext As String
End Interface
 
Public Enum ErinnerungSortierung
    Erinnerungstext
    Erinnerungsdatum
End Enum
 
Public MustInherit Class ErinnerungsBasis
    Implements IErinnerungen
 
    Private myErinnerungsdatum As Date = #1/1/1900#
    Private myErinnerungstext As String = ""
 
 
    Public Overridable Property Erinnerungsdatum As Date Implements _
      IErinnerungen.Erinnerungsdatum
        Get
            Return myErinnerungsdatum
        End Get
        Set(ByVal value As Date)
            myErinnerungsdatum = value
        End Set
    End Property
 
    Public Overridable Property Erinnerungstext As String Implements _
      IErinnerungen.Erinnerungstext
        Get
            Return myErinnerungstext
        End Get
        Set(ByVal value As String)
            myErinnerungstext = value
        End Set
    End Property
End Class
 
Public Class Erinnerung
    Inherits ErinnerungsBasis
 
End Class
 
Public Class Geburtstag
    Inherits ErinnerungsBasis
 
    Private myVorname As String
    Private myNachname As String
 
    Public Property Geburtsdatum As Date
        Get
            Return MyBase.Erinnerungsdatum
        End Get
        Set(ByVal value As Date)
            MyBase.Erinnerungsdatum = value
        End Set
    End Property
 
    Public Overridable Property Vorname As String
        Get
            Return myVorname
        End Get
        Set(ByVal value As String)
            myVorname = value
        End Set
    End Property
 
    Public Overridable Property Nachname As String
        Get
            Return myNachname
        End Get
        Set(ByVal value As String)
            myNachname = value
        End Set
    End Property
 
End Class
Gruß
Hannibal

_____________________________________________________
Programmieren ist heute ein Wettrennen zwischen Programmierern, die versuchen bessere und idiotensicherere Programme zu entwickeln und dem Universum, dass versucht bessere Idioten zu entwickeln

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Problem mit OOP Klassenaufbau 
Autor: Hannibal
Datum: 30.08.12 22:02

Meine natürlich OOP nur ein Schreibfehler...

_____________________________________________________
Programmieren ist heute ein Wettrennen zwischen Programmierern, die versuchen bessere und idiotensicherere Programme zu entwickeln und dem Universum, dass versucht bessere Idioten zu entwickeln

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Problem mit OPP Klassenaufbau 
Autor: Hannibal
Datum: 31.08.12 19:47

Hallo Micke,

mit dem Interface hast du vielleicht recht, aber schaden sollte es auch nicht und ich weiß ja nicht wie sich das Projekt noch entwickelt.

Dachte mir das in etwa so

    Public Overridable Property Vorname As String
        Get
            Return myVorname
        End Get
        Set(ByVal value As String)
            myVorname = value
            myErinnerungstext = myVorname & ", " & myNachname
        End Set
    End Property
 
    Public Overridable Property Nachname As String
        Get
            Return myNachname
        End Get
        Set(ByVal value As String)
            myNachname = value
            myErinnerungstext = myVorname & ", " & myNachname
        End Set
    End Property
 
    Public Overrides Property Erinnerungstext As String
        Get
            Return myErinnerungstext
        End Get
        Set(ByVal value As String)
            myErinnerungstext = value
            myVorname = myErinnerungstext.Split(CChar(", "))(0)
            myNachname = myErinnerungstext.Split(CChar(", "))(1)
        End Set
    End Property
Aber wie garantiere ich, dass der Erinnerungstext also Vorname und Nachname in der Klasse Geburtstag auch immer gleich getrennt wird, hier z.B. mit ", "?
Wie soll ich eine Ausnahme oder ähnliches auslösen falls dies nicht der Fall ist? Und das wichtigste wie kann ich trotzdem in der Klasse Erinnerung eine Erinnerungstext ohne Komma eingeben.
Meine Idee ist die Formatüberprüfung einfach über eine Maskedtextbox in der Form zu machen, da die Klasse sowieso nur ich benutze, aber das ist ja nicht Sinn der OOP...

Schonmal Danke.

Gruß
Hannibal

_____________________________________________________
Programmieren ist heute ein Wettrennen zwischen Programmierern, die versuchen bessere und idiotensicherere Programme zu entwickeln und dem Universum, dass versucht bessere Idioten zu entwickeln

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Problem mit OPP Klassenaufbau 
Autor: Micke
Datum: 01.09.12 12:34

    Public Overridable Property Vorname As String
        Get
            Return myVorname
        End Get
        Set(ByVal value As String)
            myVorname = value
        End Set
    End Property
 
    Public Overridable Property Nachname As String
        Get
            Return myNachname
        End Get
        Set(ByVal value As String)
            myNachname = value
        End Set
    End Property
 
  protected delimeter as string = ", "
    Public Overrides Property Erinnerungstext As String
        Get
            Return Vorname & ", " & Nachname
        End Get
        Set(ByVal value As String)
            Vorname = value.Split(delimeter)(0)
            Nachname = value.Split(delimeter)(1)
        End Set
    End Property

Micke

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Problem mit OPP Klassenaufbau 
Autor: Manfred X
Datum: 01.09.12 13:03

Hallo!

Zunächst benötigst Du vermutlich eine Enumeration, die
die möglichen Arten der "Erinnerung" enthält:

Enum RememberEnum
Nur_Text
Geburtstag
Hochzeitstag
Besprechungstermin
Zahlungstermin
usw.
End Enum

Zusätzlich benötigst Du eine Eigenschaft dieses
Enumerationstyps, damit die Instanz erkennen kann, wie
der Erinnerungstext (Zugriff auf spezifische Eigenschaften)
aufgebaut werden muß.

Je nachdem, welche Art der Erinnerung in einer Instanz
gegeben ist, wird dann bei der Abfrage (Get) der Wert der
Eigenschaft Vor-/Zuname, Meldetext, Datum/Uhrzeit, Zahlungsbetrag
o.ä. als Erinnerung zurückgegeben.

MfG
Manfred

Beitrag wurde zuletzt am 01.09.12 um 13:06:58 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Problem mit OOP Klassenaufbau 
Autor: Hannibal
Datum: 05.09.12 08:55

Hallo,

danke für die Vorschläge, werde dies jetzt einfach mal alles probieren und dann entscheiden wie es für mich am besten funktioniert.

Danke für eure Hilfe

Gruß
Hannibal

P.s. Danke demjenigen der den Beitragstitel geändert hat ;)

_____________________________________________________
Programmieren ist heute ein Wettrennen zwischen Programmierern, die versuchen bessere und idiotensicherere Programme zu entwickeln und dem Universum, dass versucht bessere Idioten zu entwickeln

Beitrag wurde zuletzt am 05.09.12 um 08:56:51 editiert.

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel