Duplicar posible:
Properties vs Methods¿Dónde debe estar la línea entre la propiedad y el método?
Para muchas situaciones es obvio si algo debe ser una propiedad o un método sin embargo, hay elementos que podrían considerarse ambigua.
Propiedades obvia:
- "nombre"
- "longitud"
métodos obvios:
- "SendMessage"
- "Imprimir"
ambiguo:
- "válido"/"IsValid"/"Validar" /"IsInBounds"/"CheckBounds"
- "dentro del campo"
- "AverageChildValue "/" CalcAverageChildValue "
- " ColorSaturation "/" SetColorSaturation "
Supongo que me inclinaría por los métodos ambiguos, pero ¿alguien sabe de una regla o convención que ayude a decidir esto? P.ej. ¿deberían todas las propiedades ser O (1)? ¿Una propiedad no podría cambiar otros datos (ColorSaturation podría cambiar los valores R, G, B)? ¿No debería ser una propiedad si hay cálculo o agregación?
Solo desde una perspectiva académica, (y no porque crea que sea una buena idea) hay una razón para no volverse loco con las propiedades y simplemente hacer todo lo que es un interrogatorio de la clase sin discutir, y todo lo que se puede cambiar sobre la clase con un solo argumento y no puede fallar, una propiedad?
Wiki de la comunidad? Como esto parece un poco discutible y subjetivo ... o re-etiqueta esto como subjetivo ... pero tu pregunta probablemente terminará cerrada ...?! – t0mm13b
Esta es una pregunta duplicada, ¡probablemente varias veces! Ej: http://stackoverflow.com/questions/601621/properties-vs-methods – mjv
¡Incluso algo tan "obvio" como "largo" no siempre es obvio! Por ejemplo, determinar la longitud de una lista vinculada implica atravesar toda la lista, una operación potencialmente costosa. Por lo tanto, puede elegir hacer que sea un método GetLength en su lugar, porque las personas esperan obtener una propiedad de bajo costo. – itowlson