[Tres características básicas y cinco principios básicos de la orientación a objetos]

Tres características básicas y cinco principios básicos de la orientación a objetos.

Las tres características básicas son el requisito previo para comprender los cinco principios básicos.

Insertar descripción de la imagen aquí

1. Tres características básicas: encapsulación, herencia y polimorfismo.

1. Embalaje

La encapsulación consiste en ocultar los atributos y los detalles de implementación del objeto, exponer solo la interfaz al mundo exterior, controlar el nivel de acceso de lectura y modificación de atributos en el programa y combinar los datos y comportamientos (o funciones) abstraídos para formar una estructura orgánica. completo, es decir, combinar orgánicamente los datos con el código fuente que opera los datos para formar una "clase", en la que tanto los datos como las funciones son miembros de la clase.

El propósito de la encapsulación es mejorar la seguridad y simplificar la programación. Los usuarios no necesitan conocer los detalles de implementación específicos, solo necesitan usar los miembros de la clase con derechos de acceso específicos a través de la interfaz externa.

¿No es orientado a objetos analizar cosas con el objeto como centro cuando se usa un programa para manejar cosas? Es diferente de orientado a procesos, que se preocupa por la lógica, el flujo y otras cuestiones del procesamiento, pero no se preocupa por el tema del evento. Orientado a objetos significa orientado a sujetos, por lo que cuando resolvemos problemas, primero debemos encapsular objetos (los objetos son instancias de clases encapsuladas, por ejemplo, Zhang San es una persona y las personas son una clase encapsulada. Zhang San es solo una instancia y un objeto en el objeto. ). Por ejemplo, los conejitos y las ovejitas de nuestra vida diaria se pueden resumir en una clase.

imagen-20230917094622199

2. Herencia

La herencia es una de las características básicas de la orientación a objetos y el mecanismo de herencia permite la creación de clases jerárquicas. Herencia significa que una subclase hereda las características y comportamientos de la clase principal, de modo que el objeto de la subclase (instancia) tiene los campos y métodos de instancia de la clase principal, o la subclase hereda métodos de la clase principal, de modo que la subclase tiene los El mismo comportamiento que la clase principal. Similar a la figura siguiente:

imagen-20230917094648763

Hemos encapsulado la clase de conejos anterior y también se pueden encapsular otros animales. Durante el proceso de encapsulación, encontramos que las dos clases de conejos y ovejas tienen funciones o características similares, como comer pasto, por lo que podemos extraer características y métodos comunes para formar una clase de nivel superior, como aquí herbívoros y carnívoros. La herencia es la relación entre las clases secundaria y principal. El mecanismo de herencia puede describir bien la ecología de una clase y también mejora la tasa de reutilización del código. La clase Object en Java es la superclase de todas las clases y a menudo se la llama clase Dios.

3. Polimorfismo

Polimorfismo La capacidad del mismo comportamiento de tener múltiples manifestaciones o formas diferentes. Significa que el mismo método de una instancia de clase (objeto) tiene diferentes manifestaciones en diferentes situaciones. El polimorfismo permite que objetos con diferentes estructuras internas compartan la misma interfaz externa. Esto significa que aunque las operaciones específicas en diferentes objetos son diferentes, (esas operaciones) se pueden llamar de la misma manera a través de una clase común.

Ventajas del polimorfismo:

  1. Eliminar relaciones de acoplamiento entre tipos.
  2. Sustituibilidad
  3. Escalabilidad
  4. Interfaz
  5. flexibilidad
  6. sencillez

Tres condiciones necesarias para la existencia del polimorfismo:

  1. heredar
  2. Reescritura (la subclase hereda la clase principal y redefine el método de la clase principal)
  3. La referencia de la clase principal apunta al objeto de la clase secundaria.

En resumen, el polimorfismo en realidad se basa en la herencia. Por ejemplo, hoy vamos al zoológico a visitar animales, entonces tienes razón al decir que vamos a visitar conejos, ovejas, leones y leopardos, pero no puedes decir que vamos a visitar automóviles. En este ejemplo, la subclase es polimórfica: además de utilizar su propia identidad, también puede actuar como clase padre.

2. Cinco principios básicos

1. Principio de Responsabilidad Única (PRS)

Una clase debe tener una y sólo una razón para cambiarla, lo que significa que una clase debe tener sólo un trabajo.

Por ejemplo, en la clase de empleado, si se consideran ingenieros, vendedores y gerentes de ventas en la clase de empleado, el resultado será muy confuso. Bajo esta suposición, cada método en la clase de empleado debe determinar si hay otra cosa. En este caso, estará muy inflado en términos de estructura de clases.

2. Principio abierto-cerrado (OCP)

Un objeto o entidad debe estar abierto a la extensión y cerrado a la modificación.

El cierre de cambios significa que cuando ampliamos el módulo, no necesitamos modificar el código fuente del programa ni la DLL ni volver a compilar el archivo. Este principio es muy útil para nosotros al diseñar clases. Si nos adherimos a este principio, debemos hacer todo lo posible para considerar la encapsulación de interfaces, el mecanismo de abstracción y la tecnología polimórfica.

3. Principio de sustitución de Richter (LSP)

q(x) se cumple cuando el objeto x es de tipo T, luego, cuando S es una subclase de T, q(y) también debe ser válido cuando el objeto y es de tipo S. (Es decir, las llamadas a clases principales también se aplican a subclases)

4. Principio de inversión de dependencia (DIP)

Los módulos de alto nivel no deberían depender de los módulos de bajo nivel, todos deberían depender de abstracciones. La implementación concreta debería depender de la abstracción, no la abstracción de la implementación.

Se puede entender de esta manera: cuando di los ejemplos anteriores, primero mencioné los conejos y las ovejas, y luego presenté los herbívoros. Pero si continuamos conociendo herbívoros como el ganado vacuno y los caballos, encontraremos que necesitamos ajustar constantemente la descripción de los herbívoros, de modo que el programa se vuelva rígido, por lo que no debemos dejar que la subclase dependa de la entidad, y No debemos permitir que los módulos de la clase principal dependan de los módulos de la subclase. Entonces necesitamos diseñar el herbívoro como una clase abstracta, es decir, una clase o interfaz abstracta. De esta manera, la capa inferior solo necesita implementar los detalles correspondientes sin afectar a la clase principal.

5. Principio de aislamiento de interfaz (ISP)

No se debe obligar a los clientes a implementar una interfaz que no utilizan, ni a confiar en métodos que no utilizan. ¡Es mucho mejor utilizar múltiples interfaces especializadas que una única interfaz!

Por ejemplo, para reducir la definición de la interfaz, se colocan muchos métodos similares en una sola interfaz. Al final, encontrará que se dedica demasiado esfuerzo a mantener e implementar la interfaz, y las operaciones definidas por la interfaz son equivalente a un compromiso con el cliente. Este tipo de compromiso es, por supuesto, cuanto menos mejor, cuanto más conciso mejor, ¡demasiado compromiso le traerá mucha energía y tiempo para mantenerlo!

Dirección de reimpresión: Tres características básicas y cinco principios básicos de la orientación a objetos - Biblioteca Baidu

Supongo que te gusta

Origin blog.csdn.net/weixin_45483322/article/details/132944214
Recomendado
Clasificación