假设我有一个数据类:
data class SensorData(val name: String, val temp : Double)
我从REST服务或通过内部setter方法创建了这个SensorData
对象,而name
总是被填充,temp
可能是空的。
进一步讲,我需要这个SensorData对象通过几个类,这就是我想到使用的singleton
。
显然我需要object
关键字as described here,但是我如何合并data class object
呢?
假设我有一个数据类:
data class SensorData(val name: String, val temp : Double)
我从REST服务或通过内部setter方法创建了这个SensorData
对象,而name
总是被填充,temp
可能是空的。
进一步讲,我需要这个SensorData对象通过几个类,这就是我想到使用的singleton
。
显然我需要object
关键字as described here,但是我如何合并data class object
呢?
4条答案
按热度按时间hkmswyz61#
您可以使用伴随对象保留对数据对象的引用:
并像这样使用它:
rqmkfv5c2#
我想你把单例的概念搞错了:
它不仅用于使其对所有类公开,还用于限制示例的数量。
一个数据类是一个存储数据的类,为什么它应该是一个Singleton?
重新考虑您的架构,使其可在需要时访问。
u3r8eeie3#
不要将数据类作为单例使用。这不是它们的设计目的。一个更好的方法是在数据类周围创建一个 Package 器对象,用于处理SensorData对象。这也将允许您使用多个SensorData对象(将来可能需要),或者在您第二次轮询REST服务时用新对象替换当前对象。
vs91vp4v4#
在我看来,你应该重新考虑你的体系结构,因为数据类是用来存储数据的,那么为什么它应该是一个单例呢?它不仅仅是用来让它对所有类都是公共的,而且还限制了示例的数量。