【问题标题】:Refactoring one large list of C# properties/fields重构一大堆 C# 属性/字段
【发布时间】:2010-05-04 15:08:32
【问题描述】:

如果您查看http://www.c-sharpcorner.com/UploadFile/dhananjaycoder/activedirectoryoperations11132009113015AM/activedirectoryoperations.aspx,就会发现一个类中有大量 AD 属性。

重构如此庞大的(相关)字段列表的好方法是什么?使单独的类就足够了,还是有更好的方法使这更易于管理?

谢谢

【问题讨论】:

    标签: c# oop anti-patterns


    【解决方案1】:

    我要提取的第一批是以“MSEXCH”开头的八个 - 该前缀表明作者认为这些属性有一些共同点。除此之外,我看不出有多少自然地属于简单的组,但如果您发现某些属性总是一起使用,那么将它们放在同一个类中可能是个好主意。

    【讨论】:

      【解决方案2】:

      如果它们是相关的,它们应该属于一起......

      如果您认为可以将它们进一步分组(即地址、电话号码),您可以为它们创建简单的类。

      【讨论】:

        【解决方案3】:

        如果您正在谈论将它们划分为逻辑组,那么类可以很好地解决这个问题,并且可能使它们更易于导航。我确信 AD 中的属性没有以这种方式组合在一起是有原因的,但是当我得到太多属性以致不得不开始认真滚动时,我总是尝试将它们组合在一起。

        【讨论】:

          【解决方案4】:

          如果问题在于源代码太长,您可以使用自动属性

              public string Department { get; private set; }
              public string FirstName { get; private set; }
              public string MiddleName { get; private set; }
              public string LastName { get; private set; }
              public string LoginName { get; private set; }
              public string LoginNameWithDomain { get; private set; }
              public string StreetAddress { get; private set; }
              public string City { get; private set; }
              public string State { get; private set; }
              public string PostalCode { get; private set; }
              public string Country { get; private set; }
              public string HomePhone { get; private set; }
              public string Extension { get; private set; }
              public string Mobile { get; private set; }
              public string Fax { get; private set; }
              public string EmailAddress { get; private set; }
              public string Title { get; private set; }
              public string Company { get; private set; }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-02-05
            • 2011-06-19
            • 2010-11-04
            • 1970-01-01
            • 2011-11-08
            • 1970-01-01
            • 2010-09-14
            • 2013-03-11
            相关资源
            最近更新 更多