0

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

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

哪种方法是面向未来的?单例方法是否如此糟糕以至于将来会被放弃?

4

1 回答 1

2

作为良好 SOLID 编码实践的一部分,通常不鼓励使用单例。单例变得有点神奇,因为在您的代码中的任何地方,您都可以拉下一个依赖项并访问它,似乎不知从何而来。

这会在代码库中产生高度耦合,使其更难更改,并且极难测试。

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

当然,这并不是说 Singleton 根本就没有一席之地——当然,在某些情况下不使用 Singleton 是没有意义的,但是在可以避免的情况下,最好避免使用它们。

如果“面向未来”的意思是“更灵活、更容易改变”,那么我建议 ContentProvider 模式是可行的方法。

于 2013-09-03T12:27:28.140 回答