2009-05-07 51 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); 
相关问题