我没有使用任何ORM。因此,我在争论“保存”方法实际上是属于业务领域实体还是应该在将要交付给业务领域实体进行保存的某些服务中抽象出来?

例如

class Employee
{
    string Name;
    DateTime Birth;

    GetAge()
    {

    }

    Save()
    {
    }

}

或者

class Employee
{
    string Name;
    DateTime Birth;

    GetAge()
    {

    }


}

SomePersistenceService
{
    Save(Employee emp)
        {
        }
}

最佳答案

由于此问题被标记为“域驱动设计”,因此您将需要一个存储库来为您完成此工作。

只需将SomePersistenceService重命名为EmployeeRepository。因此,使用第二个选项可以使您走上正确的道路。 “在将要移交给业务域实体的某些服务中抽象”在域驱动设计中称为存储库

存储库是一种伪装您的数据存储为集合的方式。因此它具有AddRemove之类的方法,而不是SaveDelete

关于domain-driven-design - "Save"方法是否属于业务域实体?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11613716/

10-10 04:13