Api “实施最佳设计”;“违约”;藏品

Api “实施最佳设计”;“违约”;藏品,api,collections,class-design,Api,Collections,Class Design,例如,我有一个Person类,它具有任意数量的关联地址。因此,将有一个Addresses集合作为Person类的成员 在许多使用Person类的应用程序中,我们只想检索“默认”地址对象。关于实施,有几个设计问题: 在DB中的每个地址记录上,我可以有一个标志来设置它是否是集合的默认值。或者,我可以有不同类型的地址(家庭、账单、运输等),并设置规则,说明如果一个人有家庭地址记录,则将其用作默认地址。如果没有,则使用装运等方式 至于用于检索默认地址的接口,我们有很多方法可以做到这一点,我想知道对一些S

例如,我有一个Person类,它具有任意数量的关联地址。因此,将有一个Addresses集合作为Person类的成员

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

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

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

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

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


    对于第二个,第三个实现听起来像是最面向对象的

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

    对于第二个,第三个实现听起来像是最面向对象的