he visto cómo definir una clase como un conjunto unitario (how to create a singleton in ruby):ruby - crea singleton con parámetros?
require 'singleton'
class Example
include Singleton
end
Pero lo que si quiero darle algunos parámetros para esa única instancia, es decir, el Ejemplo siempre debe tener ciertas propiedades inicializado Por ejemplo, supongamos que tengo una clase cuyo único propósito es iniciar sesión en un archivo (esto es solo un ejemplo) pero requiere un nombre de archivo para iniciar sesión antes de que pueda funcionar.
class MyLogger
def initialize(file_name)
@file_name = file_name
end
end
¿Cómo puedo hacer de MyLogger un singleton pero me aseguro de que tenga un nombre de archivo?
Si desea pasar parámetros en, ¿está seguro de que desea utilizar un producto único? –
Sí. Creo que hay situaciones en las que un singleton tiene sentido, pero es uno que debería tener alguna configuración inicial. – codecraig