Estoy leyendo el libro "Código limpio" y estoy luchando con un concepto. Cuando se habla sobre objetos y estructuras de datos, se establece lo siguiente:Código de limpieza: ¿Deberían los objetos tener propiedades públicas?
- Los objetos ocultan sus datos detrás de las abstracciones y exponen las funciones que operan con esos datos.
- Las estructuras de datos exponen sus datos y no tienen funciones significativas.
Entonces, lo que obtendré de esto es que no debería tener propiedades públicas en mi objeto, solo debería tener métodos que realicen operaciones en las propiedades. Si necesito acceder a las propiedades, deberían estar en una estructura de datos, que podría ser devuelta por un método en mi objeto. Con este enfoque, parece que necesitaría un método GetHeight() y SetHeight() para mi propiedad Height en mi objeto, en lugar de simplemente usar obtener y establecer de la propiedad.
Tal vez no entiendo exactamente lo que se sugiere, pero esta es mi comprensión de "Los objetos ocultan sus datos." Si pudieras ayudarme a entender esto, ¡lo agradecería mucho!
¡Gracias de antemano!
Para añadir a la respuestas a continuación, la confusión probablemente se debe al hecho de que muchos idiomas no admiten propiedades. En este caso, puede elegir entre los métodos de acceso y los campos públicos, y la opción correcta es siempre los métodos de acceso. C# no tiene este problema, ya que admite propiedades. –