【发布时间】:2020-02-06 22:33:12
【问题描述】:
class Foo(val param1: String, var param2: Int) {
// class body
companion object {
val NULL = Foo("", 0)
}
}
NULL 对象在 Kotlin 中有效吗?
虽然 Kotlin 允许在构造函数中添加默认值,但是否有理由不鼓励使用 NULL 对象,就像上面的 sn-p 一样?
假设我不需要只使用一个参数来构造对象,例如:Foo("ABC") 或 Foo(5)。 (...在将 Foo 修改为在构造函数中具有默认值之后)
【问题讨论】:
-
当然 null 对象是有效的,就像任何其他设计模式一样。是否要将空对象存储为单例并在编写
Foo()时返回? -
我认为 null 模式仅适用于私有构造函数和静态工厂或构建器,它们将为 null 参数返回该对象并阻止用户手动创建它的更多副本。
标签: kotlin null-object-pattern