android面向对象的编程

我正在使用Eclipse在Android中进行一些基本的编程。 我目前正在浏览一本书,并玩一些书中的示例代码。

我注意到,在这本书中,迄今为止所有的例子都是在主要活动中进行的。 我不相信这是一个很好的面向对象的编程习惯,因为我来自传统的Java背景。

这是移动平台的常见做法吗? 不应该把所有的类都包含在他们自己的文件中吗?

Solutions Collecting From Web of "android面向对象的编程"

不应该把所有的类都包含在他们自己的文件中吗?

Android Activity不一定是“特例”类。 如果您还没有完成,我build议您阅读应用程序基础知识 ,特别是应用程序组件下的“活动” 部分 。

一个活动表示一个用户界面的单个屏幕。 例如,一个电子邮件应用程序可能有一个活动,显示新电子邮件列表,另一个活动组成一封电子邮件,另一个活动阅读电子邮件。 尽pipe这些活动在电子邮件应用程序中共同形成了一个有凝聚力的用户体验,但每个人都独立于其他人。 因此,不同的应用程序可以启动这些活动中的任何一个(如果电子邮件应用程序允许的话)。 例如,相机应用程序可以在组成新邮件的电子邮件应用程序中启动活动,以便用户共享图片。

请注意我以粗体突出显示的部分文字。 问题是,一个Activity本身并不是完整的应用程序,如果允许的话,任何第三方应用程序都可以在您的应用程序中调用一个Activity 。 因此,尽可能使Activity尽可能独立。 一个特殊的例子是使用类似AsyncTask的东西,它提供了执行后台线程以及操作UI的方法 – 嵌套一个扩展AsyncTask的私有类是相当常见的,并且简化了代码。 扩展BroadcastReceiver的嵌套类也是同样的原因。

也就是说,为POJO帮助程序类使用单独的Java类文件没有任何问题,例如,它只是归结为您的应用程序有多复杂,但这可能意味着要特别考虑某些Android类是如何工作的 – AsyncTask类是一个特别是如果在一个单独的类文件中定义,尝试它,你会明白我的意思。 🙂

面向对象是关于把function放在课堂上。 你写这些类的方式定义它是否是好的OO(尽pipe这是有争议的)。 无论所有这些类是在一个或几个文件中,或者每个类都有它自己的文件,都是一个趣味问题,而不是直接的OO问题。

由于这是一本(我认为)小样本的书,所以比起所有的类都在单独的文件中来,阅读它的方式可能是一样的容易。

如果您使用适当的OOP,则可以更快更高效地创build基于模板的应用程序。

例如,如果您有一个通用的数据库应用程序,并且可以使用多个数据库进行较小的更改,则应该努力做到这一点。