jam*_*mes 1 java inheritance android
我希望有一个课程,我的所有Activity课程都延伸.我有ListActivities,Activities,MapActivities,TabActivities,等我的应用程序.
我的应用程序中有很多这些不同的活动,~12个活动.我希望他们每个人都拥有父类中的方法.
现在,我已经建立根据其类型,其是从一定的活动延伸4父活动类(ListActivity,Activity,MapActivity,TabActivity)
我正在创建大量冗余代码 - 4个父活动中的每一个都具有几乎相同的代码,但它扩展的类活动除外.
这是一个可以澄清我的问题的例子:
Activity:MenuScreen延伸BaseListActivity BaseListActivity 扩展 ListActivityBaseListActivity 包含我希望我的所有活动都可以访问的方法和字段
我有另一个Activity:HomeScreen延伸BaseActivity
BaseActivity 扩展 ActivityBaseActivity包含与我的其他Base[<type>]Activity类相同的方法和字段(例如BaseListActivity)这些方法/字段被复制粘贴到我的所有Base[<type>]Activity,并且对我来说似乎非常多余.
我可以创建一个主活动类,所有类型的Activity类都可以用作其父类吗?如果没有,我是否坚持使用副本并粘贴此代码并感觉粗暴/肮脏?
我可以创建一个主活动类,所有类型的Activity类都可以用作其父类吗?
不,对不起
如果没有,我是否坚持使用副本并粘贴此代码并感觉粗暴/肮脏?
首先,你不需要ListActivity或TabActivity.你不需要ListActivity的ListView; 你不需要TabActivity一个TabHost.将事情归结为两个基类:Activity和MapActivity.不幸的是,您确实需要扩展MapActivity使用MapView.
为此,您可以使用合成来最小化冗余.而不是你的"我希望我的所有活动都可以访问的方法和字段"在活动上实现,而是在其他对象上实现它们,并拥有BaseActivity并BaseMapActivity保持该对象的实例.您仍然需要一些重复的代码(例如,对于生命周期方法等onStop()),但更多的东西可以放在一个类中.
| 归档时间: |
|
| 查看次数: |
394 次 |
| 最近记录: |