KL4*_*711 18 architecture model-view-controller android android-service
Android应用程序的良好架构如何?是否所有"工作/业务逻辑"都是在后台服务中完成的,而Activity只与服务通信以从某个地方(本地/远程)查询/获取数据?
你会实现Activity称为真正的Android服务的"服务"吗?或者执行工作的POJO-Singleton(可能使用后台线程).或者在活动中实例化后台线程以进行耗时的操作(查询Web服务).
您如何以正确的方式抽象数据访问?您会使用ContentProvider来访问/抽象您的数据吗?如何/从哪里查询?活动?服务?..?
我试图寻找一个好的应用程序架构设计,但我只发现了Android架构的样子,而不是Android应用程序应该是什么样子.
那你对此有什么看法?Android应用程序的哪些组件应该相互通信以确保最佳的可扩展性/封装,......?
Ric*_*ich 15
这个问题没有一个答案.良好的OO设计不是Android特定的.我会说规则是 - 如果框架为您提供适合您的用例的高级对象(例如Android的服务),请使用它.如果您发现自己使用框架免费获得相同的POJO实现,请使用框架.
至于关注点的分离,这是标准的OO内容.不要在Activity类中放置任何不属于Activity的工作.使用Activity需要但实际上不是Activity的工作的方法和属性过度填充Activity是不好的 - 这使得您的Activity的意图难以理解.
我通常在我的应用程序中将内容分成子包.
等等
至于您的应用程序内的通信...
我总是有一个我在清单中注册的自定义Application类.这样,当我有需要成为"单一实例"的控制器和帮助器时,我不必完成所有那些疯狂的线程安全单例的东西......我只保留一个全局副本.
RoboGuice是一个依赖注入框架,使这更容易实现...绝对值得研究.如果您对此感兴趣,那么RoboGuice的谷歌小组非常棒,并且不断充满框架的创建者,他们基本上可以回答您需要的任何内容.
就应用内通信而言,我使用单实例Controller和State类来保存状态并执行常见任务,我通常使用BroadcastIntents与服务中的活动进行通信
| 归档时间: |
|
| 查看次数: |
4375 次 |
| 最近记录: |