Domain driven design 领域驱动设计中的服务
我正在创建一个应用程序来尝试DDD。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
该应用程序用于租赁电影,我的课程是:
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,还要在应用程序服务上创建一个专用方法。这似乎是一个业务用例,因此应该在服务中明确说明