设计模式来共享属性

时间:2013-11-19 21:29:31

标签: c# design-patterns webforms

我有一个名为SignupForService的类,它代表用户可以提交以注册我们服务的应用程序。它有很多字段,其中一些包括'名字','姓氏'..

我有一个不同的类,用于模拟用户需要填写的表单作为该应用程序的一部分。它有'first name,age,foo,bar ......'等字段。我们称这个类为Form2

SignupForService2上我想使用与SignupForService上相同的FirstName。我希望他们完全相互联系。

我能想到的最好的方法是使用Composition,但是将对父级的引用发送给子类。像这样:

public class SignupForService2
{
   public SignupForService2(SignupForService parent)
   {
       _parent = parent;
   }
    private SignupForService _parent;
    public string FirstName 
    {
       get{
            return _parent.FirstName
          }
    }

    //more stuff here
}


public class SignupForService
{
     public string FirstName;
     public SignupForService2 signupForService2;
}

我不仅仅将属性全部放在SignupForService类上的原因是因为它变得过于膨胀,并且逻辑上可以拆分为此SignupForService2(对于字段来说它是全部或全部) 。我也不能只在SignupForService2中继承SignupForService,因为它有很多字段在SignupForService2上没有意义。 (我还有其他案例,例如SignupForService3,SignupForService4 ..)

是否有更好的解决方案的设计模式,或者我不知道的这个模式的名称,它可以更好地描述给我?我想知道这种方法的优点/缺点。

非常感谢

1 个答案:

答案 0 :(得分:0)

很好,你很好奇如何正确地做事。

尝试阅读MVC,MVVM,IoC,DI。这是一个很大的阅读,而不是一开始最容易理解,但所有这些都是指你想要解决的问题。

通常,您将根据是否创建WinForms,WPF,ASP.NET或ASP.NET MVC应用程序来选择不同的方法。