我在使用Eclipse进行Android基础编程方面的一些尝试。目前,我正在查看一本书并尝试着书中提供的示例代码。
我注意到,在这本特定的书中,到目前为止所有的示例都是在Main-Activity中进行的。考虑到我具有传统Java背景,我不认为这是很好的面向对象编程实践。
这是否是移动平台的通用做法?难道类不应该都包含在它们自己的文件中吗?
请注意我用粗体突出的文本部分。重点是,一个一个activity代表一个具有用户界面的屏幕。例如,电子邮件应用程序可能有一个显示新邮件列表的activity,另一个用于撰写电子邮件的activity,以及另一个用于阅读电子邮件的activity。虽然这些活动共同形成电子邮件应用程序中连贯的用户体验,但每个活动都独立于其他活动。因此,不同的应用程序可以启动其中任何一个活动(如果电子邮件应用程序允许)。例如,相机应用程序可以启动电子邮件应用程序中撰写新邮件的活动,以便用户共享图片。
Activity
本身并不是完整的应用程序,如果允许的话,任何第三方应用程序都有可能调用你的应用程序中的一个 Activity
。因此,通常会尽可能使 Activity
自包含。一个特殊的例子是使用像 AsyncTask 这样的东西,它提供了执行后台线程以及操作 UI 的方法 - 嵌套一个扩展 AsyncTask
的私有类是相当普遍的,并简化了代码。嵌套扩展 BroadcastReceiver 的类也是出于同样的原因而普遍存在。AsyncTask
类,则需要尝试一下,你就会知道我的意思。 :-)Activity
是完整应用程序的一部分。确实,您不需要将应用程序的每个部分拆分为多个文件(或类),但在进行TDD编程时,通常很好能够单独测试每个最小的组件,因此我大多数时候都会朝这个方向发展。但是,TDD也不是万能的。我确实使用私有类来分解类功能的复杂部分,然后在需要时进行重构。 - vgru面向对象编程(OO)是将功能放入类中。你编写这些类的方式决定了它是否是良好的OO代码(尽管这有争议)。所有这些类是在一个或几个文件中,还是每个类都有自己的文件,这是一种品味问题,而不是直接涉及OO问题。
由于这是一本(我想是)小样本的书,因此阅读方式可能与所有类都在单独文件中时一样容易。
如果您使用适当的面向对象编程,可以更快、更高效地创建基于模板的应用程序。
例如,如果您有一个通用数据库应用程序,并且可以通过进行轻微更改来使用多个数据库,则应努力实现此目标。