在干净的架构中结合使用 Cases/Interactors
Combining Use Cases/Interactors in Clean Architecture
我正在开发一个 Android 应用程序,其架构基于 Uncle's Bob Clean Architecture。
到目前为止,我已经实现了很多 UseCases/Interactors 没有问题。
我有以下用例:
搜索房间
主要成功场景
- 系统根据给定参数搜索房间
- 系统加入房间的用户
分机
找不到房间
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()
}
}
}
我正在开发一个 Android 应用程序,其架构基于 Uncle's Bob Clean Architecture。
到目前为止,我已经实现了很多 UseCases/Interactors 没有问题。
我有以下用例:
搜索房间
主要成功场景
- 系统根据给定参数搜索房间
- 系统加入房间的用户
分机
找不到房间
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()
}
}
}