Estoy tratando de entender qué es realmente una responsabilidad, así que quiero usar un ejemplo de algo en lo que estoy trabajando actualmente. Tengo una aplicación que importa información del producto de un sistema a otro. El usuario de las aplicaciones puede elegir varias configuraciones para los campos de productos en un sistema que desea usar en el otro sistema.Ayuda para comprender el Principio de Responsabilidad Individual
así que tengo una clase, dicen ProductImporter y de que la responsabilidad es la importación de productos. Esta clase es grande, probablemente demasiado grande.
Los métodos de esta clase son complejos y serían por ejemplo, getDescription. Este método no solo toma una descripción del otro sistema, sino que establece una descripción del producto en función de varias configuraciones establecidas por el usuario. Si tuviera que agregar una configuración y una nueva forma de obtener una descripción, esta clase podría cambiar.
Entonces, ¿son esas dos responsabilidades? ¿Hay alguno que importe productos y uno que obtenga una descripción? Parecería de esta manera, casi todos los métodos que tengo estarían en su propia clase y eso parece exagerado.
que realmente necesitan una buena descripción de este principio, porque es difícil para mí entender por completo. No quiero una complejidad innecesaria.
Es "muestra una falta de Diseño" - Este es el problema que no estoy seguro de cómo corregirlo. Si el método de descripción pertenece a la clase y tengo que dar cuenta de cada variación según las distintas configuraciones, ¿de qué otro modo puede diseñarlo? No veo otra forma. – user204588
Puede tener una clase de descripción, cuya responsabilidad sería manejar la variación. Y así sucesivamente, cuando una sola responsabilidad es demasiado grande, divídala en responsabilidades más pequeñas. –