2009-05-07 7 views
1

Ich habe eine Person Klasse und basierend auf etwas Hilfe, die ich in diesem Post erhalten habe.Ist das ein richtiger MonoState-Entwurf?

MonoState, Singleton, or Derived Forms: Best approach for CRUD app?

Ich habe eine CurrentPerson Klasse um (??), und ich Zugriff auf die Daten durch das.

Ich denke, ich verstehe, wie das funktionieren soll, aber es scheint, dass ich es nicht ziemlich richtig habe.

Fragen:

  1. Für den Anfang sollte nicht Person und all seinen Variablen Mitglied privaten sein?

  2. Warum ist Person, wenn in CurrentPerson deklariert, statisch? Ist das richtig?

  3. Person tatsächlich hat untergeordnete Objekte Address, Enrollment und CaseNote. Wie integriere ich sie? A CurrentEnrollment Wrapper um Enrollment?

bin ich ziemlich neu in OOP als Wissenschaft angewendet, so einige dieser Konzepte sind schwer für mich zu visualisieren.

Der Code ist lang, ich entschuldige mich.


class Person 
{ 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
    public string MiddleName { get; set; } 
    public string SuffixID { get; set; } 
    public string TitleID { get; set; } 
    public string SocialSn { get; set; } 
    public string Gender { get; set; } 
    public string DlNumber { get; set; } 
    public string DlStateID { get; set; } 
    public string PrimaryRace { get; set; } 
    public string SecondaryRace { get; set; } 
    public string EmailAddress { get; set; } 
    public string MaritalStatus { get; set; } 
    public string InsertProgram { get; set; } 
    public string InsertUserID { get; set; } 
    public string UpdateProgram { get; set; } 
    public string UpdateUserID { get; set; } 
    public string LockID { get; set; } 

    public int PersonID { get; set; } 
    public int ClientID { get; set; } 
    public int ResidencyCountyID { get; set; } 
    public int ResponsibilityCountyID { get; set; } 

    public bool HispanicOriginFlag { get; set; } 
    public bool CitizenFlag { get; set; } 
    public bool VeteranFlag { get; set; } 

    public DateTime BirthDate { get; set; } 
    public DateTime DeathDate { get; set; } 
    public DateTime InsertDateTime { get; set; } 
    public DateTime UpdateDateTime { get; set; } 



} 

class CurrentPerson 
{ 
    public static Person Person { get; set; } 

    public string FirstName 
    { 
     get { return CurrentPerson.Person.FirstName; } 
     set { CurrentPerson.Person.FirstName = value; } 
    } 

    public string LastName 
    { 
     get { return CurrentPerson.Person.LastName; } 
     set { CurrentPerson.Person.LastName = value; } 
    } 

    public string MiddleName 
    { 
     get { return CurrentPerson.Person.MiddleName; } 
     set { CurrentPerson.Person.MiddleName = value; } 
    } 

    public string SuffixID 
    { 
     get { return CurrentPerson.Person.SuffixID; } 
     set { CurrentPerson.Person.SuffixID = value; } 
    } 

    public string TitleID 
    { 
     get { return CurrentPerson.Person.TitleID; } 
     set { CurrentPerson.Person.TitleID = value; } 
    } 

    public string SocialSn 
    { 
     get { return CurrentPerson.Person.SocialSn; } 
     set { CurrentPerson.Person.SocialSn = value; } 
    } 

    public string Gender 
    { 
     get { return CurrentPerson.Person.Gender; } 
     set { CurrentPerson.Person.Gender = value; } 
    } 

    public string DlNumber 
    { 
     get { return CurrentPerson.Person.DlNumber; } 
     set { CurrentPerson.Person.DlNumber = value; } 
    } 

    public string DlStateID 
    { 
     get { return CurrentPerson.Person.DlStateID; } 
     set { CurrentPerson.Person.DlStateID = value; } 
    } 

    public string PrimaryRace 
    { 
     get { return CurrentPerson.Person.PrimaryRace; } 
     set { CurrentPerson.Person.PrimaryRace = value; } 
    } 

    public string SecondaryRace 
    { 
     get { return CurrentPerson.Person.SecondaryRace; } 
     set { CurrentPerson.Person.SecondaryRace = value; } 
    } 

    public string EmailAddress 
    { 
     get { return CurrentPerson.Person.EmailAddress; } 
     set { CurrentPerson.Person.EmailAddress = value; } 
    } 

    public string MaritalStatus 
    { 
     get { return CurrentPerson.Person.MaritalStatus; } 
     set { CurrentPerson.Person.MaritalStatus = value; } 
    } 

    public string InsertProgram 
    { 
     get { return CurrentPerson.Person.InsertProgram; } 
     set { CurrentPerson.Person.InsertProgram = value; } 
    } 

    public string InsertUserID 
    { 
     get { return CurrentPerson.Person.InsertUserID; } 
     set { CurrentPerson.Person.InsertUserID = value; } 
    } 

    public string UpdateProgram 
    { 
     get { return CurrentPerson.Person.UpdateProgram; } 
     set { CurrentPerson.Person.UpdateProgram = value; } 
    } 

    public string UpdateUserID 
    { 
     get { return CurrentPerson.Person.UpdateUserID; } 
     set { CurrentPerson.Person.UpdateUserID = value; } 
    } 

    public string LockID 
    { 
     get { return CurrentPerson.Person.LockID; } 
     set { CurrentPerson.Person.LockID = value; } 
    } 

    public int PersonID 
    { 
     get { return CurrentPerson.Person.PersonID; } 
     set { CurrentPerson.Person.PersonID = value; } 
    } 

    public int ClientID 
    { 
     get { return CurrentPerson.Person.ClientID; } 
     set { CurrentPerson.Person.ClientID = value; } 
    } 

    public int ResidencyCountyID 
    { 
     get { return CurrentPerson.Person.ClientID; } 
     set { CurrentPerson.Person.ClientID = value; } 
    } 

    public int ResponsibilityCountyID 
    { 
     get { return CurrentPerson.Person.ResponsibilityCountyID; } 
     set { CurrentPerson.Person.ResponsibilityCountyID = value; } 
    } 

    public bool HispanicOriginFlag 
    { 
     get { return CurrentPerson.Person.HispanicOriginFlag; } 
     set { CurrentPerson.Person.HispanicOriginFlag = value; } 
    } 

    public bool CitizenFlag 
    { 
     get { return CurrentPerson.Person.CitizenFlag; } 
     set { CurrentPerson.Person.CitizenFlag = value; } 
    } 

    public bool VeteranFlag 
    { 
     get { return CurrentPerson.Person.VeteranFlag; } 
     set { CurrentPerson.Person.VeteranFlag = value; } 
    } 

    public DateTime BirthDate 
    { 
     get { return CurrentPerson.Person.BirthDate; } 
     set { CurrentPerson.Person.BirthDate = value; } 
    } 

    public DateTime DeathDate 
    { 
     get { return CurrentPerson.Person.DeathDate; } 
     set { CurrentPerson.Person.DeathDate = value; } 
    } 

    public DateTime InsertDateTime 
    { 
     get { return CurrentPerson.Person.InsertDateTime; } 
     set { CurrentPerson.Person.InsertDateTime = value; } 
    } 

    public DateTime UpdateDateTime 
    { 
     get { return CurrentPerson.Person.UpdateDateTime; } 
     set { CurrentPerson.Person.UpdateDateTime = value; } 
    } 


} 

P. S. Wenn Daniel Brückner das hier zufällig liest, bitte nicht beleidigen, da ich Ihre Antwort nicht unterschätzt habe; Ich brauche nur eine tiefere Erläuterung einiger Elemente, um die Verwendung von Monostaten in meiner App richtig zu verstehen.

Antwort

1

In Bezug darauf, ob die Felder privat sein sollten, das ist nur die neue (C# 3.0?) Möglichkeit, Eigenschaften zu deklarieren, ohne eine unterstützende Variable zu haben. Eine häufige Variante ist

public string SomeProperty { get; protected set } 

‚Course, sobald Sie so etwas wie die Validierung in dem Setter tun wollen dies nicht und Sie arbeiten müssen, um das Schreiben Getter und Setter zurück zu gehen, und eine Rück Variable deklarieren.

Ich bin mir nicht sicher, was die Absicht der statischen CurrentPerson.Person() Methode ist, oder wie es eingestellt wird.

Für die dritte Frage, wenn ich Sie richtig verstehe würden Sie die Person Klasse eine Eigenschaft vom Typ geben Address und es so etwas zugreifen:

Console.WriteLine(somePerson.HomeAddress.City);