2009-05-07 89 views
1

我有一個Person類,並基於我在這篇文章中收到的一些幫助。這是一個合適的MonoState Design嗎?

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

我有一個CurrentPerson類周圍(?),並予訪問通的數據。

我想我明白這是應該如何工作,但似乎我沒有相當沒錯。

問題:

  1. 對於初學者來說,不應該Person和它的所有成員變量是私人

  2. 爲什麼PersonCurrentPerson中聲明爲靜態?是對的嗎?

  3. Person實際上有子對象Address,EnrollmentCaseNote。我如何合併它們? A CurrentEnrollment包裝Enrollment

我是相當新的OOP作爲應用科學這樣一些概念是我很難想象。

代碼很長,我很抱歉。


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; } 
    } 


} 

附:如果丹尼爾布魯克納碰巧讀到這個,請不要冒犯,因爲我不是第二次猜測你的答案;我只需要深入澄清一些項目,以便正確理解在我的應用程序中使用monostate。

回答

1

關於這些字段是否應該是私有的,這只是新的(C#3.0?)聲明屬性而沒有支持變量的方式。一個常見的變化是

public string SomeProperty { get; protected set } 

「課程,只要你想要做的事就像在二傳手這不起作用驗證,你必須回去寫getter和setter方法,並聲明後盾變量。

我不確定靜態CurrentPerson.Person()方法的目的是什麼,或者它是如何設置的。

對於第三個問題,如果我理解你的權利,你願意付出的PersonAddress類型的屬性和訪問它是這樣的:

Console.WriteLine(somePerson.HomeAddress.City); 
相關問題