在干净的架构封装 struct 中,Service
(或BroadcastReceiver
等)属于哪里?我想知道在域和数据层之间...我将创建一个名为services
in domain
Package的新包.是这样吗,还是我应该换一种方式做?
在干净的架构封装 struct 中,Service
(或BroadcastReceiver
等)属于哪里?我想知道在域和数据层之间...我将创建一个名为services
in domain
Package的新包.是这样吗,还是我应该换一种方式做?
当你想到clean architecture的时候,你应该想到Android Service
,就像在任何其他Android应用程序组件上一样,比如Activity
.
Service
和Activity
都可以做类似的事情,比如播放音乐、执行网络请求等,其中一个区别是在Service
的情况下缺乏用户界面(尽管人们可以将Notification
视为Service
的UI).这种没有用户界面的情况一开始可能会产生误导.
考虑到这些应用程序组件的类似用途,我们可以想象Service
和Activity
可以位于CLEAN体系 struct 项目的同一层.
首先,我不会 Select data
层,因为它是存放数据源(domain
层中定义的抽象的具体实现)的地方,比如Web API或数据库控制器.有人会争辩说,Service
在某种程度上是应用程序的数据源,因为您可以绑定到它并获得数据from the background,但如果您查看Activities
或Fragments
,您会注意到,通过使用Intent
或参数,它们也可以是其他Activities
的数据源.
我不会 Select domain
包-它应该包含definitions个应用程序的业务逻辑-存储库的接口等.此外,这一层应该是platform-independent,所以不应该有Android组件.AService
绝对不属于那里.
左边是app
(或presentation
)层.它是Android-specific层--这是Service
层的地方.Service
可以直接与邻居domain
层通信以经由其可以传递到边界Activity
、显示具有数据的Notification
等的用例来访问数据.所有这一切都没有违反干净的架构规则.