Principios del diseño orientado a objetos ¿Cuáles son los principios del diseño orientado a objetos?
1. Principio de responsabilidad única: un objeto solo debe contener una única responsabilidad, y la responsabilidad debe estar completamente encapsulada en una clase. El principio de responsabilidad única es una guía para lograr una alta cohesión y un bajo acoplamiento. Es el principio más simple pero más difícil de aplicar. Requiere que los diseñadores descubran y separen las diferentes responsabilidades de una clase.
2. Principio de apertura-cierre: Las entidades de software deben estar abiertas a extensiones y cerradas a modificaciones. Significa que la entidad de software debe intentar ampliarse sin modificar el código original.
3. Principio de sustitución de Liskov: Todos los lugares que hacen referencia a una clase base deben poder utilizar de forma transparente objetos de sus subclases. El principio de sustitución de Liskov establece que si un objeto de clase base se reemplaza con su objeto de subclase en el software, el programa no generará ningún error ni excepción, pero lo contrario no es cierto. Al aplicar el principio de sustitución de Liskov, la clase principal debe diseñarse como una clase o interfaz abstracta, y la clase secundaria debe heredar la clase principal o implementar la interfaz de la clase principal e implementar los métodos declarados en la clase principal.
4. Principio de inversión de dependencia: los módulos de alto nivel no deben depender de módulos de bajo nivel, todos deben depender de abstracciones. Las abstracciones no deberían depender de los detalles, los detalles deberían depender de las abstracciones. El principio de inversión de dependencia requiere: Programa para la interfaz, no para la implementación.
5. Principio de aislamiento de interfaz: el cliente no debe depender de interfaces que no necesita. Cuando se utiliza el principio de aislamiento de interfaz, se debe prestar atención a controlar la granularidad de la interfaz. La interfaz no puede ser demasiado pequeña, lo que provocará una proliferación de interfaces en el sistema, lo que no favorecerá. mantenimiento La interfaz no puede ser demasiado grande. Una interfaz demasiado grande violará el principio de aislamiento de la interfaz. Menos flexible e inconveniente de usar.
6. Principio de composición y reutilización: Priorizar el uso de la composición de objetos en lugar de la herencia para lograr el propósito de la reutilización. En términos generales, si existe una relación Has-A entre dos clases, se debe utilizar la composición o agregación, y si existe una relación Is-A, se puede utilizar la herencia.
7. Ley de Demeter: también conocida como el principio del mínimo conocimiento: cada unidad de software tiene solo el mínimo conocimiento de otras unidades y se limita a aquellas unidades de software que están estrechamente relacionadas con esta unidad.