2011-09-03 27 views
1

我在写一个Android应用程序,一本字典只是为了好玩。我决定使用MVC作为架构模式。我需要做很多查询,因为我想创建一个象Google这样的istant搜索:每次用户向EditText添加一个字母时,我都会查询数据库。
我想知道什么是最好的解决方案,如果每次打开数据库或保持它始终打开。前者可能会更好,因为数据库只有在严格需要时才打开,后者应该更具性能。
还有另一种方法。因为我使用MVC是将查询数据库的视图。所以我可以在模型部分创建一个公共方法来在必要时打开数据库,并在用户找到该单词时关闭它。但是这可能是一个好的解决方案吗?数据库中最重要的两个功能(打开和关闭)将在视图部分公开。这听起来不太正确:它没有任何信息隐藏。使用Android和MVC打开数据库

您对这个逻辑和性能问题有什么看法?

回答

1

如果我们纯粹谈论理论模式设计,事实是模型可能不应该暴露它从数据库中获取数据的事实。您可以很容易地在数据库是否打开的模型中进行内部跟踪,并在必要时打开它。

关于问题的表现方面,当涉及到这样的问题时,只有的方式才能得到很好的答案就是衡量。这可能是保持数据库打开不会有任何不良影响,你不会有任何问题,只是保持开放。这将是最容易和最快的解决方案可能比更可能。但是,保持打开状态可能会占用太多内存,或者使CPU保持忙碌状态,或者出现其他一些副作用。

正如我所提到的,唯一真正拥有明确答案的方法就是衡量。除其他分析工具之外,您可以使用DDMS

+0

如果我需要打开数据库,控制模型内部的好主意。简单而有效!我会尽量保持数据库的开放性,希望性能不会太差。感谢你的回答 :) – lastYorsh