【发布时间】:2014-03-17 14:40:48
【问题描述】:
是否可以从外部对象初始化 Scala 对象?我试图初始化的 Scala 对象没有任何 Companion 类。举个例子:
object ObjectA {
val mongoDBConnectionURI = // This is the Val that I want to initialize from an external object
....
....
}
但是 MongoDBConnectionURI 类型的 mongoDBConnectionURI 需要一个主机和一个端口,我必须从实际上由对象 B 完成的配置文件中读取这些值,并将这些值传递给 ObjA。稍后我的所有 DAO 对象将访问对象 A 中的 mongoDBConnectionURI 变量以获取连接字符串。如何将对象 B 中的值传递给对象 A 并初始化对象 A 中的值?
【问题讨论】:
-
为什么不只是
... val mongodb = ObjectB.url ...? -
那行不通。读取 db 凭证值的初始化逻辑驻留在另一个项目中,而这个另一个项目是一个播放应用程序,在启动时读取配置详细信息并将它们发送到 ObjectA,后者作为依赖项添加到播放项目中。访问数据库的 DAO 类驻留在此依赖项中,它们不应该有任何返回 ObjectB 的引用。
-
我相信您正在寻找工厂模式。 en.wikipedia.org/wiki/Factory_method_pattern
标签: scala