Мой дизайн включает маленькую абстракцию базы данных, посредством чего я реализую каждую базу данных как Singleton (хорошо, object
), с пользовательскими методами для базы данных для этих нескольких операций вызовы кода (это - главным образом синтаксический анализатор журнала, выводя интересную статистику к базе данных).
Я хотел бы создать классы базы данных Singleton, если это возможно, такой, что во времени выполнения, каждый создается со значениями конфигурации (и те значения остаются постоянными для остатка от времени выполнения программы). Это позволило бы мне лучше тестировать код также (поскольку я могу дразнить использование баз данных Mockito или некоторые такой).
Я все еще только изучаю Scala, но кажется, что нет никакого способа присоединить конструктора к Singleton и не ценил бы входа на этой проблеме - там лучший способ сделать то, что я делаю? Разве существует ли некоторый предпочтительный способ создать Singleton?
Аплодисменты заранее для любой справки.
Просто поместите код конструктора в тело определения объекта:
object Foo {
println("Hello") // This will print hello the first time
// the Foo object is accessed (and only
// that once).
}
Вместо того, чтобы использовать синглтон (который трудно протестировать)... Тот, кто создает актеров, может создать фабрику сессий базы данных и передать ее каждому актеру, тогда она будет общей... и тестируемой.