В результате разработки фреймворка, на который я нацеливался с помощью плагина, я реализовал часть своего кода как синглтон.Этот класс отвечает за обработку соединений с внешней программой, с которой я общаюсь внутри фреймворка.
Включение внешней связи - это настройка времени выполнения, и если она отключена, я не хочу разрешать доступ к ней из моделей в рамках.Я реализовал его, используя версию, которая часто рекомендуется здесь:
class Communicator {
public:
static Communicator& getInstance() {
static Communicator instance;
return instance;
}
// ...
private:
static bool ServiceEnabled;
// Constructors, operator=, etc ...
}
Теперь, учитывая, что ServiceEnabled
равно false
, я не хочу, чтобы getInstance
возвращал действительный Communicator
.Но так как я возвращаю ссылку, я не могу просто вернуть 0 или что-то подобное ... Каким будет правильное поведение?Обратите внимание, что совершенно правильно продолжать выполнение, даже если ServiceEnabled
имеет значение false, поэтому я не могу просто прервать выполнение, если это так.