java - Android应用架构: how to share behavior between all screens

标签 java android architecture multiple-inheritance

各位 Android 程序员大家好,

这是我每次制作新应用程序时都会遇到的问题。想象一下,您的应用程序中有 Activity、ListActivity 和 MapActivity 的子类。现在我希望当用户单击菜单按钮时每个屏幕都显示相同的选项菜单。所以我用这种行为创建了一个 BaseActivity。但是因为 Java 不允许多重继承,所以我必须为每种类型的 Activity 编写三个 BaseActivities。这很丑陋,因为我有三倍相同的代码...我能想到的唯一解决方案是在其中一个 BaseActivities 中使某些行为静态,并在其他 BaseActivites 中引用该行为。但仍然有很多重复...有人对这个问题有更优雅的解决方案吗?

干杯

最佳答案

这是单继承语言的权衡之一。使用委托(delegate)而不是通过继承各种 Activity 子类来重复代码。这也称为委托(delegate)继承。您将获得多重继承的功能,而无需承担任何责任。

这是通过创建一个委托(delegate)类来完成的,该委托(delegate)类具有您想要的所有共享功能,然后让“ super ”类调用该委托(delegate)。这仍然需要少量的复制粘贴代码,但数量很少。维基百科有一个很好的例子 Delegation pattern 。如果您有 C# 背景,这种形式的委托(delegate)是类似的,但不限于单个方法和多个事件。

关于java - Android应用架构: how to share behavior between all screens,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7616025/

相关文章:

java.sql.SQLException : Cannot create JDBC driver of class '' for connect URL 'null' ] with root cause 异常

android - 如何知道android中的应用程序是否启用了通知?

java - setRepeating() 没有正确重复

ios - 如何从不同 View 调用CoreLocation

java - 如何使用外键在 Spring Data/JPA 中执行查询?

java - 如何使用 IText 将段落添加到矩形中

java - 如何以编程方式在表之间传输大量数据?

android - 使用嵌套约束布局的多个 View 单击事件(2.0.0 beta 2)

python - 在顶部导入 Python 函数或在代码中调用它们

java - 两个隔离系统之间的同步