gpt4 book ai didi

java - 共享共同功能的两个 Activity

转载 作者:行者123 更新时间:2023-11-29 05:27:59 27 4
gpt4 key购买 nike

我有两个 Activity :AddContactEditContact。它们都共享许多作用于该数据的公共(public)实例变量和方法。

重构此代码以避免任何重复代码的最佳方法是什么?

您能否推荐任何特定的设计模式供使用?最明显的当然是继承,但由于 android 中的每个 Activity 都已经扩展了 Activity,所以这是不可能的。

我已经想到再做一个扩展Activity的类,然后把常用的变量和方法放在这个类里面,然后在AddContact中初始化这个类编辑联系人。但是,如果这真的是最好的方法,我是否应该将此共享类中的所有方法和实例变量设为静态?

非常感谢您的宝贵时间。

最佳答案

继承怎么会出问题呢?您可以有一个扩展 Activity 的基类,然后让您的其他两个类扩展它以继承共享功能,例如:

public class MainActivity extends Activity {
//Common functionality and instance methods
}

public class AddContact extends MainActivity {
//Has all of Main Activity's non private methods/variables
}

public class EditContact extends MainActivity {
//Has all of MainActivity's non private methods/variables.
}

此外,如果您不想直接使用 MainActivity,可以将其抽象化以确保使用子类。这为您提供了通过共享方法/变量来减少冗余的好处,并且还允许您扩展此功能以使其在需要时特定于每个子类。

另一种选择是只使用单例来封装通用功能。

关于java - 共享共同功能的两个 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22052336/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com