Sobre métodos de instanciación y conveniencia perezosa
Suponga que tiene unSingleton
Clase de constantes, instancia que le gustaría usar en toda su aplicación.
InsomeClass
, por lo tanto podemos hacer referencia a[Constants instance] someCleverConstant];
Escribir esto envejece muy rápido y sería bueno tener un acceso directo a la instancia.
InsomeClass
, podemos declarar@property (nonatomic, weak, readonly) Constants *constants;
Y un captador de la instancia-(Constants*) constants {
if (constants == nil)
constants = [Constants instance];
return constants;
}
De esta manera en someClass, por lo tanto, podemos hacer referencia aconstants.someCleverConstant;
en lugar de
Algunas preguntas sobre esto:
Es lo que describí un enfoque razonabl ¿Es correcto declarar una propiedadweak
? ¿Hay algún problema de rendimiento con lo que he descrito? ¿Sería mejor llamar a la instancia directamente? Considere una situación en la que tiene 20 clases, cada una necesita su propio puntero a la instancia de Constantes. ¿Funcionaría este enfoque entonces?Gracias por tu tiempo