Android数据库的ContentProvider或Singleton方法



在处理Android SQLite数据库时,我看到有人提倡这两种方法。我个人更喜欢Singleton数据库锁定模式,但新的开发实践建议放弃Singleton模式。

现在,我很困惑是继续我习惯的方式,还是开始使用"新的和更好的"东西。

哪种方法经得起未来考验?辛格尔顿的方法是否糟糕到将来会被放弃?

作为良好的SOLID编码实践的一部分,通常不鼓励使用Singleton。单身汉变得有点神奇,因为在你的代码中的任何地方,你都可以从任何地方提取依赖项并访问它。

这在代码库中产生了高水平的耦合,使更改变得更加困难,也使测试变得极其困难。

另一方面,像ContentProvider这样的模式鼓励对接口和抽象进行编码,当小心使用时,可以减少耦合,并使提供者实例更容易被替换——这对代码的灵活性和代码的可测试性都很好。

当然,这并不是说辛格尔顿根本没有位置——当然,在某些情况下,不使用辛格尔顿是没有意义的,但在可以避免的情况下,最好避免。

如果你所说的"经得起未来考验"是指"更灵活、更容易改变",那么我建议采用ContentProvider模式。

最新更新