2010-09-26 8 views
6

¿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?

+0

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. –

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