我看到人们在处理Android SQLite数据库时主张这两种方法。我个人更喜欢Singleton数据库锁定模式,但新的开发实践建议放弃Singleton模式。
现在我很困惑是否要继续,因为我习惯或开始使用“新的和更好”的东西。
哪种方法可以面向未来? Singleton接近这么糟糕,将来会被抛弃吗?
答案 0 :(得分:2)
作为良好的SOLID编码实践的一部分,通常不鼓励单身人士。 单身人士变得有点神奇,在你的代码中的任何地方,你都可以通过拉下依赖关系来访问它,看似无处不在。
这在代码库中创建了高级别的耦合,使得更改变得更加困难,并且使测试非常困难。
另一方面,像ContentProvider这样的模式鼓励对接口和抽象进行编码,这些接口和抽象在使用时会小心地减少耦合,并使提供程序实例更容易替换 - 这对于代码的灵活性和可测试性都很有用。代码。
当然,这并不是说单身人士根本没有地方 - 当然有些地方没有使用单身人士没有意义,但在可以避免的地方,最好避免它们。
如果通过“面向未来”意味着“更灵活,更容易改变”,那么我建议采用ContentProvider模式。