什么架构会更好

What architecture would be better

在这两个示例中,您能否从架构的角度提出更好的建议以及原因。首先我有一个单独的 class 负责与对象相关的业务逻辑,对象没有任何方法,那里只有数据。 在第二个示例中,对象知道如何保存自己(使用相同的存储库)和位于内部的所有业务逻辑。

我有一个实现了first的应用程序,但是处理对象的服务太多了,重写到second sample不是很容易吗?我只是想了解它是否有效或给我带来更多问题。

第一个:

class Person{
public stirng FirstName {get;set;}
}



class PersonService<Person> : IService<Person>{
    ctor (IRepository<Person> repository){
        _repository = repository;
    }
    public void Save(Person p){
        // business logic there
        _repository.Save(p)
    }
}

第二个:

class Person{
public stirng FirstName {get;set;}

    ctor(IRepository repository){
        _repository = repository;
    }

    public void Save(){
        // business logic there
        _repository.Save(p)
    }
}

应要求,已从评论移至答案

据我了解,您担心必须处理的贫血领域模型。我建议您先 read(Fowler 的 post 有一个 link)。它被认为是一种反模式,但这并不意味着您需要重写您的系统。掌握 DDD 需要 months/years,而且没有人能真正保证这种重新设计的成功结果,尤其是在系统很大的情况下。如果贫血模式适合你,坚持下去。如果没有,则开始使用 DDD。