你能否从架构的角度建议什么会更好,为什么在这两个例子中呢?在第一个我有一个单独的类负责与对象和对象相关的业务逻辑没有任何方法,它只是数据。 在第二个示例中,对象知道如何保存自己(使用相同的存储库)和位于内部的所有业务逻辑。
我有一个首先实现的应用程序,但处理对象的服务太多,将它重新写入第二个样本会不容易?我只想了解它是否会起作用或给我更多问题。
首先
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)
}
}
答案 0 :(得分:1)
根据要求,从评论转到答案
据我了解,您关注的是您必须处理的贫血领域模型。我建议你先read(这里有福勒的帖子链接)。它被认为是一种反模式,但并不意味着你需要重写你的系统。掌握DDD需要数月/数年,没有人能真正保证这种重新设计的成功结果,特别是如果系统很大的话。如果贫血模型适合您,请坚持下去。如果没有,则开始使用DDD。