例如,我有一个LocationRepository,它从设备获取最后一个位置。但是我需要在许多ViewModels中使用最后的位置信息。
定义一个私有变量来保存LocationRepository中的最后一个位置和一个公共getter方法来到达它是否更好?在那之后,我可以把那个Repository注入到我需要的每个ViewModel中。
或者我应该在静态字段中定义一个lastLocation变量以全局可达吗?
在一个Android项目中,哪一个在可测试性和单一责任方面会是一个更好的方法?
根据我的理解,创建一个位置存储库,其中包含setter和getter变量将更有意义,因为您可以随时更改从单个源获取最后位置的逻辑,因此这将更易于维护。对于测试,您也可以简单地注入一个假位置存储库,它将是可测试的。
另外,你应该考虑最后位置的用法,比如你是否经常更改它,如果你想在多个片段中同时刷新它,那么你需要相应地考虑。
我不知道确切的用例,所以以上只是我的意见,如果你有任何疑问,请告诉我。