我在我当前的项目中使用Clean Architecture。现在我想集成一个请求Facebook SDK执行登录的功能。
我认为,Facebook SDK充当数据提供者(提供身份验证服务,类似于其他Restful登录API),应该在data
模块而不是app
模块下进行设置和使用。例如,如果我想执行Facebook登录,我将调用适当的用例,然后这样的用例将调用data
模块来进行实际工作。
但是,挑战是Facebook方法(参见Facebook的LoginManager,Here),要求运行Activity / Fragment实例。
那么,我应该将Facebook SDK移回app
模块还是将Activity实例传递给storage
模块?
我真的不喜欢他们的任何选择。 (尽管它有助于解决要求但感到不高兴)。有没有人有更好的方法? 感谢
答案 0 :(得分:0)
为了严格遵循干净的架构,你必须保留所有框架的内部圈子(app模块)。这包括Facebook SDK以及Android本身。
从Clean Architecture中的业务规则访问框架的常用方法是通过抽象。
在您的使用案例中,我建议如下:
这种方法会为你的项目添加更多的类和接口,但也明确区分关注点和依赖项。