В Scala, как я дал бы Singleton конструктора?

Мой дизайн включает маленькую абстракцию базы данных, посредством чего я реализую каждую базу данных как Singleton (хорошо, object), с пользовательскими методами для базы данных для этих нескольких операций вызовы кода (это - главным образом синтаксический анализатор журнала, выводя интересную статистику к базе данных).

Я хотел бы создать классы базы данных Singleton, если это возможно, такой, что во времени выполнения, каждый создается со значениями конфигурации (и те значения остаются постоянными для остатка от времени выполнения программы). Это позволило бы мне лучше тестировать код также (поскольку я могу дразнить использование баз данных Mockito или некоторые такой).

Я все еще только изучаю Scala, но кажется, что нет никакого способа присоединить конструктора к Singleton и не ценил бы входа на этой проблеме - там лучший способ сделать то, что я делаю? Разве существует ли некоторый предпочтительный способ создать Singleton?

Аплодисменты заранее для любой справки.

9
задан frio 27 June 2010 в 23:35
поделиться

2 ответа

Просто поместите код конструктора в тело определения объекта:

object Foo {
    println("Hello") // This will print hello the first time
                     // the Foo object is accessed (and only
                     // that once).
}
13
ответ дан 4 December 2019 в 12:16
поделиться

Вместо того, чтобы использовать синглтон (который трудно протестировать)... Тот, кто создает актеров, может создать фабрику сессий базы данных и передать ее каждому актеру, тогда она будет общей... и тестируемой.

4
ответ дан 4 December 2019 в 12:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: