Domain driven design 领域驱动设计中的服务

Domain driven design 领域驱动设计中的服务,domain-driven-design,Domain Driven Design,我正在创建一个应用程序来尝试DDD。 该应用程序用于租赁电影,我的课程是: class Movie{ String title String descrition } class Customer{ String username } class Rent{ Film film User user Period period } 就我所知,我还有一个RentService来创建Rent对象。因此,我: class RentServi

我正在创建一个应用程序来尝试DDD。
该应用程序用于租赁电影,我的课程是:

class Movie{
     String title
     String descrition
}

class Customer{
    String username
}

class Rent{
     Film film
     User user
     Period period
}
就我所知,我还有一个
RentService
来创建
Rent
对象。因此,我:

class RentService{
     Rent rentMovie(User user, Film film, Date from, Date to){
         //validation check (like if the film is already rented)
         return rentRepository.store(new Rent(user, film, from, to));
     }
}
最后,
RentService
只需创建一个新的
Rent
对象,然后使用存储库存储它。是否正确?
那么,我想现在就提供一个按钮出租!在从今天开始租用3天的web应用程序中,我应该在
RentService
中添加一个方法
rentNow
来计算天数,还是可以重复使用旧方法并在Controller类中计算日期

最后,RentService只需创建一个新的Rent对象,然后 使用存储库存储它。对吗

大多数情况下是的。租房服务是一项重要的服务。但是,谁负责向服务提供
用户
电影
实体。它可以是控制器,但是您也可以让
RentService
自己来做。控制器只负责传递ID:

Rent rentMovie(int userId, int filmId, Date from, Date to)
服务必须引用适当的存储库。好处是“租赁电影”操作完全由服务封装,控制器的责任更少

对于RentNow,还要在应用程序服务上创建一个专用方法。这似乎是一个业务用例,因此应该在服务中明确说明