Синглтон — это шаблон проектирования, который позволяет создавать экземпляр класса только один раз. Преимущество Singleton заключается в том, что каждый раз вызывается только один и тот же экземпляр объекта. Ruby также поддерживает шаблон Singleton.

Чтобы создать одноэлементный класс в Ruby, необходимо включить модуль Singleton.

Проверьте код ниже:

В приведенном выше примере создан рубиновый одноэлементный класс с именем ServerConnection с методом экземпляра с именем connection.

Чтобы создать экземпляр объекта с одноэлементным классом в Ruby, нам нужно использовать метод .instance.

server = ServerConnection.instance

Независимо от того, сколько раз ServerConnection.instance вызывается, возвращаемый объект будет одним и тем же.