2010-04-28 88 views
5

在Android上编程时,我最终编写了由其他人扩展的父活动。有点像ListActivity。我的父母活动延伸至Activity。如果我打算使用MapList,我不能将父母活动用作超类 - 子活动显然只能扩展一个活动。因此,我最终以ActivityListActivityMapActivity等等相同的逻辑写我的父母活动。扩展Android活动的设计模式?

我在寻找什么样的特征功能/设计模式,这将有助于在这种情况下。有什么建议么?

回答

1

我已经结束了具有并入共享逻辑碱MyAbstractActivity extends ActivityMyAbstractListActivity extends MyAbstractActivity模仿ListActivity(膨胀layout.R.id.listlayout.R.id.empty等;没有多少对那里发生的)。

3

我真的很不喜欢ListActivityMapActivity等等。基本上他们是以一些灵活性为代价简单添加单个视图元素的活动。通过适当地将MapViewListView添加到您的XML中,您最终会得到一个可以直接扩展派生超类的相同事物。所以,大多数情况下不要使用任何SomethingActivity类。

+0

这不仅是添加视图。您拥有地图生命周期/游标处理程序等等,具体取决于您使用的活动。好处可能不会平衡灵活性,但一些代码肯定是通过使用倾向性类获得的。 – charroch 2010-05-14 17:48:59

1

我正在使用具有所有共享功能的delegate。这使我能够为所有不同的活动在一个类中提供所有共享功能。
我所有的活动扩展了他们的特殊活动,然后实现了一个通用界面。这种方法的问题是我需要实现接口中定义的所有方法,并在委托对象中调用匹配方法。这段代码目前共有30个重复的代码行,我认为这不是什么大问题。