gpt4 book ai didi

java - 在自定义应用程序类中保存对象存储是一种好习惯吗

转载 作者:行者123 更新时间:2023-11-30 02:49:58 24 4
gpt4 key购买 nike

我想在我的应用中的许多地方使用一个对象:Fragments、Activity,甚至在服务中。

有没有比我在下面的方法更好的方法来做到这一点?

我也想知道有没有其他好的做法。

让对象静态好还是非静态好?

当我从任何 Activity 或后台服务中调用它时,Application 类是否始终持有该对象?

public class MyApplication extends Application {
private static DaoMaster.DevOpenHelper dao;

@Override
public void onCreate() {
super.onCreate();
dao = new DaoMaster.DevOpenHelper(this,
getString(R.string.db_name), null);
}

public static DaoMaster.DevOpenHelper getDao() {
return dao;
}

public static void setDao(DaoMaster.DevOpenHelper dao) {
MyApplication.dao = dao;
}
}

最佳答案

我不喜欢静态字段和方法。我认为 OOP 范式是错误的。您可能会面临很多对数据库进行多线程访问的问题。

在您的情况下,您可以将对象保存为非静态字段并从这样的 Activity 或服务中访问它:

((MyApplication) getApplication()).getDao()

对于像您这样的情况,您可以使用依赖注入(inject)。 android 上有很好的库(Dagger by squareUp)。有了它,你可以轻松地在很多地方“注入(inject)”你的对象。

关于java - 在自定义应用程序类中保存对象存储是一种好习惯吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24379226/

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