¿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

¿Qué trabajos hay para los ingenieros de software que prefieren ser especialistas?

¿En qué debería especializarme en informática (especialización en ingeniería de software) o (ingeniería de software)?

¿Cómo puede un programador novato entender una base de código grande?

¿Cuál es el papel de la inspección en el aseguramiento de la calidad del software?

¿Hasta qué punto en el proceso de aprendizaje de ruby ​​un codificador principiante comenzará a trabajar con cosas que se parecen a la web moderna (usuarios, perfiles, mensajes, publicaciones), en oposición a las variables y cadenas iniciales en las ventanas de terminal negras?

¿Cuáles son los diversos ámbitos profesionales después de ser retirado de la industria del software de TI con una amplia experiencia de 15-18 años para una persona de clase media promedio?

En términos simples, ¿qué es IO bloqueante y no bloqueante?

¿Qué tan bueno es SJSU para la ingeniería de software?

¿Cuál es la mejor manera de aplicar un algoritmo de aprendizaje automático en un proyecto PHP, usando PHP o cualquier otro lenguaje con un puente o de otra manera?

Cómo mostrar el ROI del negocio al agregar un desarrollador de software adicional a nuestro equipo

¿Por qué la gente piensa que crear software es fácil?

¿Cómo se comunica el software con el hardware mecánico?

Ingeniería de software: ¿qué es la API REST y cómo me familiarizo con ella?

¿Cuál es la diferencia entre defecto, error, error y falla en las pruebas de software?

¿Cuándo es mejor usar Lean sobre Scrum y viceversa?