¿Cuáles son los beneficios de la programación orientada a objetos?

OOP tiene que ver con la mentalidad, y menos con el poder de programación o la simplicidad (en la mayoría de los casos). El beneficio es que es una forma de dividir los problemas complejos en problemas más manejables, y para muchas personas, es rápido de comprender y proporciona un método consistente para estructurar su código.

Piense en cómo el código evoluciona de problemas simples a problemas complejos bajo la línea de pensamiento OOP:

Para problemas muy simples, esencialmente estás escribiendo un guión.

El siguiente paso es encontrar el código que usted (repetiría) en su secuencia de comandos. Ese código se generaliza en funciones.

Si observa grandes colecciones de funciones, los patrones comienzan a surgir. Muchos realizan trabajos en algún tipo de “cosa”. En un mundo orientado a objetos, esa “cosa” se convierte en un objeto, y todas las funciones que trabajan en él se convierten en métodos. Es una excelente manera de agrupar y pensar sobre sus funciones. Es un mundo OOP simplista en este momento.

Después de eso, los patrones comienzan a emerger entre diferentes objetos. Tiene muchos objetos que tienen métodos de conjuntos similares, aunque no exactamente lo mismo. También se usan en situaciones muy similares. Lo que sí tienen en común son sus comportamientos abstractos . En este punto, introduce interfaces (o clases base abstractas) y subclases para ayudar a definir esos comportamientos de manera coherente y garantizar que se puedan usar indistintamente.

¡Aún más! Empiezas a notar patrones entre clases muy diferentes. Puede haber ciertas porciones de funcionalidad que los conjuntos de clases tienen en común entre sí. Los generaliza en protocolos / mixins y usa herencia múltiple (o metodologías similares) para usar esas colecciones generalizadas de métodos / comportamiento en sus clases.

Nuevamente, el objetivo es dividir los problemas complejos en problemas más pequeños y reutilizables. OOP es una forma de lograr eso. Sin embargo, debe preguntarse si tiene sentido el problema en cuestión (al igual que cualquier otra herramienta); no lo siga ciegamente.

La respuesta de Ian MacLeod es básicamente correcta: permítanme resumir y agregar un poco de información.

Los objetos son necesarios por la misma razón por la que se necesitan todas las características importantes del lenguaje de programación: para gestionar la complejidad.

En particular, los objetos agrupan piezas de datos (lo que sería una estructura en un código que no es OO) junto con el código que opera en esos datos. Al hacerlo, un objeto forma una unidad que es más cohesiva y desacoplada que cualquier cosa que se pueda lograr sin objetos.

En resumen, los objetos alcanzan un nivel de economía de unidad que es imposible sin ellos. (Para más información sobre economía de unidad, consulte: http://aynrandlexicon.com/lexico …)

Concepto de OOPS en Java

El Sistema de Programación Orientado a Objetos es una técnica de programación para crear programas basados ​​en objetos del mundo real. Los estados y comportamientos de un objeto se representan como las variables y métodos miembros. En la programación orientada a objetos, los programas se organizan en torno a objetos y datos en lugar de acciones y lógica.

Las principales ventajas de OOP son:

Simplicidad: los objetos de software modelan objetos del mundo real, por lo que la complejidad se reduce y la estructura del programa es muy clara.
Modularidad: cada objeto forma una entidad separada cuyo funcionamiento interno está desacoplado de otras partes del sistema.
Modificabilidad: es fácil realizar cambios menores en la representación de datos o los procedimientos en un programa OO. Los cambios dentro de una clase no afectan a ninguna otra parte de un programa, ya que la única interfaz pública que el mundo externo tiene para una clase es mediante el uso de métodos.
Extensibilidad: la adición de nuevas funciones o la respuesta a los entornos operativos cambiantes se puede resolver introduciendo algunos objetos nuevos y modificando algunos existentes.
Mantenibilidad: los objetos se pueden mantener por separado, lo que facilita la localización y la resolución de problemas.
Reutilización: los objetos se pueden reutilizar en diferentes programas.

More Interesting

¿Cuál es la mejor manera de comenzar la tarea de optimizar un conjunto de pruebas de regresión escritas en Java?

¿Son los ingenieros de software generalmente malos para explicar cosas a personas que no son técnicas?

¿Son los desarrolladores realmente tan diferentes de otros trabajadores de cuello blanco?

Desarrollo de software: ¿Qué habilidades de comunicación considera más importantes como desarrollador de software?

Pruebas de rendimiento: ¿diferencia entre la línea de base y la referencia?

¿Qué indica la presencia de la gran cantidad de ingenieros de software en Quora?

¿Es normal tener miedo de una carrera en desarrollo de software a los 30 años?

¿Cuál es la diferencia entre la confiabilidad del software y la predicción de la calidad del software en función de los cambios de código?

¿Cómo pasar de ser programador a ser desarrollador? ¿Cómo puedo usar mi experiencia actual (proyectos personales o pequeñas tareas independientes en una variedad de idiomas y aplicaciones) para pasar a este rol?

¿Qué software debe conocer un ingeniero de instrumentación y control?

¿Qué tan lejos en la cadena de abstracción necesitas entender para ser un "gran" programador?

¿Cuál es el mejor software de línea de tiempo para abogados?

¿Cuál es la diferencia entre xml-rpc y soap?

Tengo que desarrollar un programa para mi curso de algoritmos. ¿Cuál sería un buen proyecto para desarrollar en un máximo de dos meses con un algoritmo?

¿Apache Parquet puede reemplazar a Infobright, Vertica o la base de datos columnar? ¿Cuál es el caso de uso de Parquet?