【问题标题】:How to initialize various data type members values from different classes?如何初始化来自不同类的各种数据类型成员值?
【发布时间】:2014-10-20 12:08:36
【问题描述】:

我有一个名为 ABC 的公共课程。使用 getter 和 setter 方法声明的变量有很多种。

这些值将来自其他各种类。

初始化这些数据类型的最佳方法是什么?

我可以将该类设为单例。我不想为该类创建多个对象。

将来自类的值是 B、C、D、E。

如果我在 B 中创建一个单例对象并将其与 Intent 一起传递给 C、D、E 并分配剩余值,那将是最好的方法吗?

或

创建一个公共静态对象作为常量。并从不同的类访问该对象并存储变量。

或

还有其他更好的方法吗?

请指教。 [请注意:编码适用于 Android]

【问题讨论】:

    标签: java android object-oriented-analysis


    【解决方案1】:

    我会选择单例方法

    public class ABC
    {
        private static ABC instance;
    
        private String memberVar;
    
        private ABC()
    
        public static ABC getInstance()
        {
            if (instance == null) {
                instance = new ABC();
            }
            return instance;
        }
    }
    

    然后你可以通过 ABC.getInstance().yourGetter() 从其他类访问它

    【讨论】:

    • 感谢您的反馈。如何强制垃圾收集该对象?我个人不喜欢那个静态部分。对于静态引用,您不认为它会产生一些问题吗?
    • 静态引用存在于您的应用范围内。因此,如果您的应用程序被关闭/删除,它也会释放静态资源。你有什么具体的指示为什么会导致问题?例如,我正在使用这样一个静态单例作为我的应用程序的存储机制,但我没有发现任何问题。
    • 假设我继续进行活动 C。我从活动 B 存储了一些值。现在我从 C 回到 B。再次从 B 回来。再次打开 B。我将在此步骤中获取先前存储的值.我不想要那个。我必须手动释放我的静态引用。
    • 我不知道在活动之间共享数据的机制以及生命周期与活动绑定的位置。您可以做的是将成员数据存储在 Activity 中,然后改用片段。只是一个想法,虽然不知道你的具体用例。
    猜你喜欢
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    • 2019-09-10
    • 2020-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多