【问题标题】:Best design to implement "Default" item in collection在集合中实现“默认”项目的最佳设计
【发布时间】:2010-09-30 23:51:15
【问题描述】:

在我的示例中,我有一个 Person 类,其中关联了任意数量的关联地址。所以会有一个 Addresses 集合作为 Person 类的成员。

在许多使用 Person 类的应用程序中,我们只想检索“默认”地址对象。关于实现有几个设计问题:

  1. 在数据库中的每个地址记录上,我可以有一个标志来设置它是否是集合的默认值。或者,我可以有不同类型的地址(家庭、账单、送货等),并设置规则来说明如果一个人有家庭地址记录,则将其用作默认值。如果没有,请使用 Shipping 等...
  2. 至于用于检索默认地址的接口,我们有很多方法可以做到这一点,我想知道一些 SO 人感觉最好的方法。

    Address a1 = myPerson.DefaultAddress;
    Address a1 = myPerson.Addresses["Default"];
    Address a1 = myPerson.Addresses.Default;
    

说“这取决于您的应用程序”可能是个好建议。让我先说我们正在为我们所有的新开发构建一些基础课程。所以我不一定只看我们正在构建的第一个应用程序作为类设计的最终决定。

【问题讨论】:

    标签: api collections class-design


    【解决方案1】:

    如果您为数据库中的每条记录设置标志,您将拥有最广泛的功能。硬编码显示默认地址的规则会限制您的设计。

    对于第 2 点,第三种实现听起来是最面向对象的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-18
      • 2020-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-13
      • 2010-09-11
      相关资源
      最近更新 更多