我一直对在Scala中没有显式主构造函数(仅是类主体的内容)的影响感到好奇。
特别是,我怀疑私有或受保护的构造函数模式,即通过伴随对象或另一个类或对象的方法控制构造可能没有明显的实现。
我错了吗?如果是这样,怎么做?
您可以拥有一个Scala单例(带有object关键字),并在该单例中将您的类定义为private,并具有用于构造对象的单例方法。
—
Paggas
@Paggas,不幸的是,当您返回一个标记为private的类的实例超出其作用域时,它将不会编译,即使从该方法的返回是在范围伴侣对象中。
—
Don Mackenzie
整个Scalaz源代码都相当丰富地完成了此操作。该概念也称为抽象代数数据类型。
—
托尼·莫里斯