我正在为服务重叠的Web应用程序设计服务层。解决问题的方法有多种,但我想听听专家在这种情况下推荐的设计模式。
我正在设计用于某些实践的出租车应用程序。我在这里有两个主要实体:汽车和驾驶员。因此,我有两个单独的控制器,可以将它们分别称为DriverController和CarController,而服务层中的两个接口则可以调用CarService和DriverService,并且有默认的impls连接到DAO层。所有这些都有助于在Car和Driver实体上进行基本的CREATE / DELETE / UPDATE / MODIFY。
否,假设我希望我的应用程序返回特定驾驶员拥有的汽车列表
例如:{“ drivername”:“ alex”,“ cars”:[{“ carname”:.... etc ....}]}
我会设计一个类似GET / drivers / {drivername} / cars
的端点。这将触发驱动程序控制器。
现在,在服务层中,我很困惑应该在哪里为该任务编写业务逻辑。我应该在驱动程序接口中添加其他方法还是应该扩展该接口?我应该在DefaultDriverServiceImpl中添加其他方法,例如getCarsForDriver还是应该扩展此DefaultDriverServiceImpl并为其添加方法?
在这里,驾驶员和汽车之间存在一对多的关系。有没有解决这种关系的设计模式/方法?