¿Es la programación orientada a objetos fundamentalmente antimodular y antiparalela? Por qué
Los lenguajes de programación orientados a objetos soportan tres conceptos: encapsulación, polimorfismo y herencia.
La encapsulación consiste en utilizar un marco autónomo para vincular los datos y métodos de un objeto en un todo. Se puede decir que el objeto es el medio que soporta el embalaje y la unidad básica del embalaje.
El polimorfismo es una variedad de expresiones. Específicamente, se puede representar mediante "una interfaz externa y múltiples métodos de implementación internos".
Herencia significa que un objeto utiliza directamente las propiedades y métodos de otro objeto.
La programación orientada a objetos tiene las siguientes ventajas:
1. Fácil de mantener
La estructura diseñada con pensamiento orientado a objetos es altamente legible. Debido a la existencia de herencia, incluso si los requisitos cambian, el mantenimiento se realiza solo en los módulos locales, por lo que el mantenimiento es muy conveniente y el costo es muy bajo.
2. Fácil de expandir
A través de la herencia, el código redundante se puede reducir en gran medida y se puede ampliar el uso del código existente;
Puedes usarlo en un módulo estándar (aquí Un "estándar" es un acuerdo entre programadores para construir un programa sobre él sin tener que empezar desde cero. Esto puede reducir el tiempo de desarrollo de software y mejorar la eficiencia de la producción;
3. Modularidad
La encapsulación puede definir el nivel de acceso de las propiedades y métodos del objeto y exponer la seguridad a través de diferentes interfaz de modificadores de acceso. evitar que los datos internos se modifiquen en condiciones inseguras. Esto puede hacer que el programa sea más modular y facilitar su posterior mantenimiento y modificación.
Al mismo tiempo, los lenguajes orientados a objetos permiten que existan múltiples instancias de un objeto al mismo tiempo sin interferir entre sí;
4. Modelado conveniente.
Aunque los lenguajes orientados a objetos Los objetos y los objetos en la vida real no son el mismo concepto, en muchos casos, el concepto de objetos en la vida real se puede abstraer y modificar ligeramente, lo que facilita enormemente el proceso de modelado. (Sin embargo, modelar directamente con objetos físicos a veces puede resultar contraproducente).
El desarrollo de lenguajes orientados a objetos tiene dos direcciones:
Una son los lenguajes puramente orientados a objetos, como Smalltalk, EIFFEL, etc.
El otro es un lenguaje híbrido orientado a objetos, que añade componentes como clases y herencia a lenguajes procedimentales y otros lenguajes, como C, Objective-C, etc.
En general, se cree que un lenguaje típico orientado a objetos es:
SIMULA67 admite herencia única y polimorfismo, así como vinculación dinámica parcial con cierto significado;
Smalltalk admite herencia única, polimorfismo y enlace dinámico;
EIFFEL, admite herencia múltiple, polimorfismo y enlace dinámico
C admite herencia múltiple, polimorfismo y enlace dinámico parcial.