[英]Combining Use Cases/Interactors in Clean Architecture
我正在开发一个 Android 应用程序,其架构基于Uncle 的 Bob Clean Architecture 。
到目前为止,我已经实现了很多我的用例/交互器而没有问题。
我有以下用例:
搜索室
主要成功场景
延期
找不到房间
a) 系统根据给定的参数创建一个新房间
b) 系统加入房间的用户
我的问题是:我应该创建一个交互器( SearchOrCreateRoomAndJoin ),还是应该创建三个交互器( SearchRoom 、 CreateRoom 和JoinRoom )并根据我的用例描述将它们组合起来?
例子:
Room room = searchRoom.execute(roomOptions)
if(room != null){
joinRoom.execute(room)
}else{
Room room = createRoom.execute(roomOptions)
joinRoom.execute(room)
}
重要的是,在我的应用程序的某些方面,我执行了一些交互器,例如SearchRoom
在我看来,您应该开发三个交互者以尊重单一职责原则。 如果这样做,可以提高代码的可维护性和重用性,因为您可以在其他场景中单独使用这些交互器。
将用例命名为 JoinRoom(此处仅一个用例就足够了)
class JoinRoomUseCase( searchRepository : searchRoomRepository,
createRoomRepository : CreateRoomRepository,
joinRoomRepository : JoinRoomRepository){
fun execute(param:Param){
if(searchRepository.findRoom){
joinRoomRepository.join()
}else{
val room = createRoomRepository.create()
room.join()
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.