我现在看了很多关于如何为Android编程的教程 - 我甚至开始自己创建一些程序.但是,我注意到我的程序看起来都是程序性的,而Java应该使用面向对象.我一直试图解决这个问题,但我发现了一个问题.我的程序的主要类 - 在应用程序开始时执行的程序(例如在com.testprogram.www下)似乎同时是屏幕和控制层的混合.
在我发现的所有教程中,我看到从main.xml视图中恢复的可视对象(例如,一个按钮 - 这个恢复向我表明这将是用于治疗的'控制'层)并且在此之后对象被注册到某种类型的监听器(在这种情况下OnClickListener- 这应该在屏幕上完成,而不是在控件中,对吧?).
这是否意味着这样?www包下的这个主类是什么?"屏幕"图层或"控件"图层?这个班级是否适合我上面提到的那个?这样做是因为基于XML的接口无法注册Java侦听器吗?任何人都知道一个好地方,我可以参考如何为Android的OO?
如果您使用 xml 等标准布局模式、strings.xml 中的字符串、处理程序的活动,并将核心逻辑/算法/数据存储检索放在单独的类(模型类)中,那么您将能够很好地编写更好的代码。
要测试您的架构,
1) 问问自己是否可以对与 UI 分开的核心逻辑/算法/数据存储(模型类)进行单元测试。您可以在具有不同 UI 的另一个项目中毫无困难地重用该模型类吗?
2) 然后问问自己是否可以通过简单地提供可选的 strings.xml 文件将应用程序移植到另一种语言。
所以表示(View)主要在main.xml 中。事件和系统处理代码(控制器)主要位于 MyActivity.java 中。算法/数据存储主要位于 Model.java 中。
真正最大的区别在于核心算法/数据存储和用户界面之间。核心算法/数据存储应该不了解用户界面的细节。在 UNIX 中,这是 INTERFACE (VC)-ENGINE (M) 模式。将视图与控制器分离只会使架构更进一步。
希望有帮助,日航
| 归档时间: |
|
| 查看次数: |
1319 次 |
| 最近记录: |