2011-03-09 88 views
2

这可能是非常基本的,但我已经开始失去对OOP原则把握我...Android的面向对象设计基础

我想设计一些类,以减少我的主要活动类的代码量,已经发展到1000多条线路。 (处理UI事件的类,消息处理的类,警报/广播的类等)。

但是,这些类将需要访问受保护的Activity方法,如findViewById。

我不认为使用继承来设计这些类是有意义的,因为它们本身不是真正的活动......我正在寻找类似于java中的朋友类的东西。

有什么建议吗?对不起,如果听起来很模糊。

回答

0

为什么不在一个单独的类中实现消息处理程序,并将“this”(当前类的实例)传递给该处理程序类,以便可以调用这些方法。 也看看依赖注入设计模式。

1

对于GUI应用程序,您应该尝试遵循的最重要设计模式之一是Model-View-Controller(MVC)模式。

Android在倾向于MVC风格方面做得很好。该活动可以被认为是控制器部分,您的XML标记是您的查看部分。

如果您的新类对findViewById进行了大量调用,那么您可能不会很好地分担责任。如果你正在做大量的视图操作,你可以考虑subclassing your View classes and referencing them in your XML。如果你添加了很多事件监听器,你可能应该继续在Activity子类中这样做,而是将你检索到的数据传递给你的帮助器类 - 而不是视图对象本身。