编辑现有对象应该在存储库层还是在服务中完成?

Mar*_*jus 4 java spring hibernate

例如,如果我有一个有债务的用户.我想改变他的债务.我应该通过获取对象,编辑并保存对象,在UserRepository或服务中执行此操作(例如BuyingService)吗?

Jer*_*vel 6

您应该负责将对象变更为同一个对象,并使用存储库来检索此对象.

示例情况:

class User {
 private int debt; // debt in cents
 private string name;

 // getters

 public void makePayment(int cents){
  debt -= cents;
 }
}

class UserRepository {
 public User GetUserByName(string name){
  // Get appropriate user from database
 }
}
Run Code Online (Sandbox Code Playgroud)

用法(杰克支付10欧元):

userRepository.GetUserByName("Jack").makePayment(1000);
Run Code Online (Sandbox Code Playgroud)

请记住,这只是一个示例方法.在编程中没有一套方法可以实现某些目标,你可以完全不同地做到这一点.

  • 业务逻辑应该真正在服务中.不在模特中. (8认同)
  • @Steve:我已经向程序员提出了一个问题.这个声明.请随意加入并澄清您的陈述,我可以想象一个评论框是不够的,并且首先使用它是相当烦人的.http://programmers.stackexchange.com/questions/218011/how-accurate-is-business-logic-should-be-in-a-service-not-in-a-model (7认同)