Hace poco leí un interesante comentario sobre la programación orientada a objetos relacionados question en el que un usuario se opuso a la creación de una clase de "Administrador":¿Cómo rompo mis hábitos de codificación de procedimientos?
Por favor, elimine la palabra gestor de de su vocabulario al hablar sobre nombres de clase. El nombre de la clase debe ser descriptivo de su propósito ' . Manager es solo otra palabra para vertedero. Cualquier funcionalidad encajará allí. La palabra ha sido la causa de muchos malos diseños extremadamente
Este comentario representa mi lucha para convertirse en un buen desarrollador orientado a objetos. He estado haciendo un código de procedimiento durante mucho tiempo en una organización con solo codificadores de procedimientos. Parece que la principal estrategia detrás del relativamente pequeño código OO que producimos es dividir el problema en clases que son fácilmente identificables como unidades discretas y luego poner los bits sobre/generalizados en una clase "Manager".
¿Cómo puedo romper mis hábitos de procedimiento (como la clase Manager)? La mayoría de los artículos/libros de OO, etc. usan ejemplos de problemas que son intrínsecamente fáciles de transformar en grupos de objetos (por ejemplo, Vehículo -> Automóvil) y, por lo tanto, no proporcionan mucha orientación para analizar sistemas más complejos.
Esto se siente un poco subjetivo para mí. Estoy en la valla. –
Tengo que hacer esta pregunta, en el ejemplo Vehículo-> Coche, ¿no querrías un GravityManager que pudiera aplicar la gravedad a todos los objetos en el Vehículo a la vez en lugar de cada pieza individualmente? ¿O CollisionManager para hacer lo mismo? – Suroot
Sí, no veo cómo una palabra puede hacer que se escriba un código incorrecto. Mi primer idioma fue OO y tengo una clase en un proyecto actual que finaliza con el administrador. Lo hace porque, bueno, es un control de usuario que 'administra' los controles secundarios relacionados. –