¿Cuál es una mejor práctica; manipular propiedades con accesadores por @property
o self.property
?@property o self.property para establecer una propiedad con un descriptor de acceso?
6
A
Respuesta
1
Si usted está usando descriptores de acceso rectas, luego se adhieren a @property
(a menos que usted viene de Python y se apagan por el jeje @
sigilo) de otro modo:
Es totalmente de usted. Pero self.property
puede ser útil en algunas circunstancias en las que necesita para asegurar la propiedad se establece inicialmente:
def property
@property ||= []
end
# don't need to check if @property is `nil` first
self.property << "hello"
También ten en cuenta que hay una ligera sobrecarga de utilizar self.property
sobre @property
como self.property
es una llamada al método.
NOTA: La razón por la que estoy usando self.property
sobre property
simplemente se debe a que el método de selección correspondiente property=
requiere un receptor explícito: self.property=
, por lo que optan por utilizar el receptor explícita con ambos.
Cuestiones relacionadas
- 1. Establecer @property de una clase Singleton
- 2. descriptor Python vs propiedad
- 3. Establecer una propiedad con un EventTrigger
- 4. descriptor 'getter' requiere un objeto 'propiedad' pero recibió una 'función'
- 5. Establecer un valor predeterminado para una propiedad
- 6. ¿Por qué debería usar una variable privada en un descriptor de acceso a la propiedad?
- 7. Cómo establecer una propiedad dinámica en un modelo con Backbone.js
- 8. ¿Crear descriptor de propiedad por instancia?
- 9. Error en la propiedad del descriptor de acceso: no se puede redefinir el estado de la propiedad no configurable
- 10. ¿Puedo usar XAML para establecer una propiedad anidada (propiedad del valor de una propiedad) de un control?
- 11. Establecer una propiedad por reflexión con un valor de cadena
- 12. ¿Cómo establecer una propiedad Int de un control en ASCX?
- 13. Organizador personalizado para @property?
- 14. ¿Se está estableciendo O_NONBLOCK como una propiedad del descriptor de archivo o del archivo subyacente?
- 15. Objective-C declaraciones de descriptor de acceso (sólo lectura, ReadWrite, etc)
- 16. WiX: ¿Cómo puedo establecer una propiedad externamente?
- 17. ¿Debo usar un campo o propiedad dentro de la clase para establecer los valores
- 18. Una propiedad, indexador o acceso de miembro dinámico no se puede pasar como un parámetro de salida o referencia
- 19. Cómo usar MethodInfo.Invoke para establecer el valor de propiedad?
- 20. Uso de Reflection para establecer una Propiedad con un tipo de Lista <CustomClass>
- 21. Registro valor predeterminado sintaxis de descriptor de acceso
- 22. javascript property change event
- 23. Javascript big-O rendimiento de acceso a la propiedad
- 24. ¿Puedo establecer un valor de propiedad con Reflection?
- 25. MATLAB Lazy Evaluation en Dependent Property
- 26. ¿Hay alguna forma de establecer una variable de preprocesador para el valor de una propiedad?
- 27. SQLAlchemy: cómo hacer un mapa con una propiedad de solo lectura (o calculada)
- 28. Creando la instancia del descriptor de acceso de clase
- 29. Acceso al nombre o atributos de la propiedad C#
- 30. ADVERTENCIA: Establecer la propiedad 'fuente' en 'org.eclipse.jst.jee.server: nombre de aplicación' no encontró una propiedad coincidente
Esta es una buena pregunta, y algo que me he preguntado a mí mismo. La mayoría de los códigos que veo utilizan @class_variable directamente, pero a menudo me he preguntado si sería mejor utilizar los accesores de la misma forma que el código del cliente, solo desde una perspectiva de estilo/legibilidad. –