Мой проект включает в себя небольшую абстракцию базы данных, посредством которой я реализую каждую базу данных как Singleton (ну, object
), с настраиваемыми методами в базе данных для пары операций, вызываемых кодами (это в основном анализатор журналов, демпинг интересной статистики для база данных).В Scala, как я могу дать Singleton конструктору?
Я хотел бы построить классы базы данных Singleton, если это возможно, так что во время выполнения каждый из них сконструирован с конфигурационными значениями (и эти значения остаются постоянными для остальной части времени выполнения программы). Это позволило бы мне лучше проверить код (так как я могу издеваться над базами данных с помощью Mockito или некоторых таких).
Я все еще только изучаю Scala, но, похоже, нет способа присоединить конструктор к Singleton, и был бы признателен за любой вклад в эту проблему - есть ли лучший способ сделать то, что я делаю? Есть ли какой-то предпочтительный способ построения Singleton?
Приветствуется за любую помощь.
Спасибо кучи для быстрого ответа. Мое беспокойство в том, что я хочу передать аргументы конструктору. Улыбаясь, хотя, я понимаю, какой грязный взломать. Мне нужно будет пересмотреть мой дизайн. – frio
Да, его рубить. Синглтоны - это глобальное состояние, а точка Scala - это возможность невидимой параллельной обработки. Это означает, что вы не можете иметь глобальное состояние. – fishtoprecords
@frio, может быть важно помнить, что конструктор объекта (тело) не выполняется до тех пор, пока вы не сделаете ссылку на объект или его содержимое (поля или методы), что дает вам определенную степень контроля над конструкцией объекта. –