android面向对象编程

JCC*_*JCC 7 java oop android

我正在使用Eclipse在Android中使用一些基本编程来愚弄.我目前正在浏览一本书,并阅读书中所写的一些示例代码.

我注意到在这本特定的书中,到目前为止所有的例子都在Main-Activity中占据了一席之地.我不相信这是一个非常好的面向对象编程实践,因为我来自传统的Java背景.

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

Squ*_*onk 6

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

Android不一定Activity是'特殊情况'类.如果您还没有这样做,我建议您阅读应用程序基础知识,特别是应用程序组件下的"活动" 部分 ...

活动表示具有用户界面的单个屏幕.例如,电子邮件应用程序可能有一个活动显示新电子邮件列表,另一个活动用于撰写电子邮件,另一个活动用于阅读电子邮件.虽然这些活动在电子邮件应用程序中协同工作以形成一致的用户体验,但每个活动都独立于其他活动.因此,不同的应用程序可以启动这些活动中的任何一个(如果电子邮件应用程序允许).例如,相机应用程序可以在组成新邮件的电子邮件应用程序中启动活动,以便用户共享图片.

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

也就是说,为POJO帮助程序类使用单独的Java类文件没有任何问题,例如,它只取决于您的应用程序的复杂程度,但它可能意味着要特别考虑某些Android类的工作方式 - AsyncTask该类是特别是如果在单独的类文件中定义,尝试它,你会明白我的意思.:-)

  • Activity几乎是一个应用程序本身的事实应该完全相反,它完全包含在一个大类中.任何应用程序或多或少都是"自包含"的,这并不意味着所有代码都应该在单个类中.正如您所引用的,*"活动协同工作以在(一个)应用程序中形成一个有凝聚力的用户体验"*,实际上预计UI和功能的一部分在活动之间共享. (3认同)

Gol*_*rol 5

OO是关于将功能放在类中.你编写这些类的方式定义了它是否是好的OO(虽然这是有争议的).是否所有这些类都在一个或几个文件中,或者每个类都有自己的文件,这是一个品味问题,并不直接是OO问题.

由于这是一本带有(我认为)小样本的书,它可能就像所有类都在单独的文件中一样容易阅读.