繁体   English   中英

在干净的架构中结合用例/交互器

[英]Combining Use Cases/Interactors in Clean Architecture

我正在开发一个 Android 应用程序,其架构基于Uncle 的 Bob Clean Architecture

到目前为止,我已经实现了很多我的用例/交互器而没有问题。

我有以下用例:

搜索室

  • 主要成功场景

    1. 系统根据给定参数搜索房间
    2. 系统加入房间内的用户
  • 延期

    1. 找不到房间

      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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM