代码之家  ›  专栏  ›  技术社区  ›  Lee Simpson

将服务对象设计为特定的或通用的方法?

  •  0
  • Lee Simpson  · 技术社区  · 14 年前

    脚本: 对WCF服务使用分层方法:将域/dto对象返回到客户端的业务服务。还在开发中,所以我们可以解除合同。

    人对象有名字和姓氏。成员对象具有税务文件编号和出生日期。这是因为,在我们的领域中,只有成员才能获得税务文件编号和出生日期。当使用此结构从服务获取数据时,很明显哪些属性是适用的。

    现在,我们介绍了另一个对人有用法的服务——比如说雇员。在此用法中,person对象需要附加属性tax file number和出生日期。

    最好的方法是什么?

    1)将Person对象视为普通人,并包含所有属性。这将人映射到现实世界中的人,而不一定基于用法。这意味着返回人员的服务将包括税务档案编号和出生日期,即使它们可能不相关。

    2)将附加字段复制到Employee中。这使人员保持原样,并以重复为代价保持特定的服务调用。

    3)在我们为成员和员工继承的名为PersonWithDoBtfn的对象之间创建另一个。这样可以消除重复,保持特定的内容,但会带来复杂性。

    我正在寻找设计这些对象的最佳实践方法。

    2 回复  |  直到 14 年前
        1
  •  1
  •   Sisyphus    14 年前

        2
  •  0
  •   Jagmag    14 年前

    Person ---is-a---> Member ---is-a--> Employee