InicioCiencia EducacionProgramacion orientada a objetos


PARADIGMA ORIENTADO A OBJETOS

David Funes



Abstracción


Una abstracción denota las características esenciales de un objeto que lo distinguen de los demás tipos de objetos y proporciona fronteras conceptuales nítidamente definidas respecto a la perspectiva del observador.
Una abstracción se centra en la visión externa de un objeto y por lo tanto sirve para separar el comportamiento esencial de la implantación.
La decisión sobre el conjunto adecuado de abstracciones para determinado dominio es el problema central del diseño O.O.

• Podemos caracterizar el comportamiento de un objeto considerando los servicios que presta a otros objetos, así como las operaciones que realiza sobre otros objetos:

1. Abstracciones de objeto - Los objetos son las abstracciones que modelan la aplicación individual del dominio o entidades del espacio de solución.
2. Abstracciones de clases - Las clases son las plantillas abstractas que modelan la aplicación similar del dominio o entidades del espacio de solución.
3. Abstracciones de datos - Modela los datos que son usados cuando se comunican con el atributo de objetos y las clases.
4.Abstracciones funcionales- Modela operaciones secuenciales considerando los procesos de abstracciones.
5.Abstracciones de procesos- Modelan las operaciones concurrentes. Ambas abstracciones funcional y de procesos se usan cuando se comunican con las operaciones de objetos y las clases.
6. Abstracciones de excepción - Las condiciones del error del modelo de excepción son el error manejado y se usan para crear objetos robustos y clases.

Por lo tanto la abstracción se define como la extracción de las propiedades esenciales de un concepto. En un programa estructurado, es suficiente conocer que un procedimiento dado realiza una tarea específica. El cómo se realiza la tarea no es importante; mientras el procedimiento sea fiable, se puede utilizar sin tener que conocer como funciona su interior. Esto se conoce como una abstracción funcional. Con la abstracción de datos, las estructuras de datos e ítems se pueden utilizar sin preocuparse sobre los detalles exactos de la implementación.


Objeto

Informalmente diremos que: Un objeto es una cosa visible o tangible, o es algo que se comprende intelectualmente, o un objeto es algo en que se piensa.
Un objeto siempre modela una parte de la realidad y por lo tanto existe en el tiempo y en el espacio. También resultan de interés aquellos objetos que surgen como invenciones del proceso de diseño. Esto lleva a una definición más refinada de objeto.
Un objeto representa una entidad, elemento o unidad individual e identificable, ya sea real o abstracta, con un papel bien definido en el dominio del problema.
Un objeto tiene estado, comportamiento e identidad; la estructura de objetos similares se definen en su clase común; los términos INSTANCIA y OBJETO son intercambiables.

• Estado: El estado de un objeto abarca tanto las propiedades (normalmente estáticas) del mismo más los valores actuales (normalmente dinámicos) de cada una de esas propiedades.

• Comportamiento: El comportamiento es cómo actúa y reacciona un objeto en términos de cambios de estado y pasos de mensajes.
• Identidad: La identidad es aquella propiedad de un objeto, que lo distingue de todos los demás objetos.

¿Qué es una clase?
En el contexto del análisis y diseño orientados a objetos una clase se define como un conjunto de objetos que comparten una estructura y un comportamiento común. Una clase sirve como una especie de contrato que vincula a una abstracción y todos sus clientes (objetos). Dentro del concepto de clase se definen su interfaz y su implementación. La interfaz proporciona la visión externa de la clase, enfatizando la abstracción y ocultando la estructura y los secretos de comportamiento de la clase. Ésta puede estar definida en tres formas:
• Pública: Esta declaración resulta accesible a todos los clientes.
• Protegida: Es accesible a la propia clase, subclases y clases amigas.
• Privada: Sólo es accesible a la propia clase y sus clases amigas.
La implementación de una clase es su visión interna. Se compone de la implementación de las operaciones definidas en la interfaz.
Las clases se relacionan formando una estructura de clase. Existen tres tipos básicos de relaciones entre clases: -generalización/especialización: denota la relación “es un”; -todo/parte: denota la relación “parte de”; -asociación: denota alguna dependencia semántica entre clases.
Estas relaciones se plasman y se concretan en los diferentes lenguajes orientados a objetos. Dentro de estas relaciones concretas se destaca la relación de herencia que expresa relaciones de generalización/especialización. La herencia es una relación entre clases en la que una clase comparte la estructura y/o el comportamiento definidos en una clase (herencia simple) o más de una clase (herencia múltiple). La clase que otras heredan se denomina superclase. La clase que hereda de otra clase se denomina subclase.
¿Qué es una clase abstracta?
Una clase abstracta es una clase sin instancia, que se utiliza como clase base de otras clases. Es imprescindible en el diseño de una jerarquía de clases. Presenta la interfaz común para los objetos de clases derivadas. De esta forma las subclases añaden cosas a su estructura y comportamiento






Encapsulamiento

El encapsulamiento es el proceso de almacenar en un mismo compartimento los elementos de una abstracción que constituyen su estructura y su comportamiento; sirve para separar la interfaz contractual de una abstracción y su implantación. Mientras que la abstracción se centra en el comportamiento observable de un objeto, el encapsulamiento se centra en la implementación que da lugar a este comportamiento. El encapsulamiento es posible mediante la ocultación de información, donde se ocultan todos los secretos de un objeto que no contribuyen a sus características esenciales. De esta manera proporciona barreras explícitas entre abstracciones diferentes

La capacidad de presentación de información dentro de un objeto se divide en dos partes bien diferenciadas:
Interna: La información que necesita el objeto para operar y que es innecesaria para los demás objetos de la aplicación. Estos atributos se denominada privados y tienen como marco de aplicación únicamente a las operaciones asociadas al objeto.

Externa: La que necesitan el resto de los objetos para interactuar con el objeto que definimos. Estas propiedades se denominan públicas y corresponde a la información que necesitan conocer los restantes objetos de la aplicación respecto del objeto definido para poder operar

Polimorfismo

El polimorfismo es una nueva característica aportada por la POO. Esta propiedad indica la posibilidad de definir varias operaciones con el mismo nombre, diferenciándolas únicamente en los parámetros de entrada. Dependiendo del objeto que se introduzca como parámetro de entrada, se elegirá automáticamente cual de las operaciones se va a realizar.
En la solución de un problema orientado a objetos, el polimorfismo puede aplicarse a cualquier objeto u operaciones.
El Polimorfismo es apoyado por la ligadura de un método particular al identificador del mensaje durante la ejecución de un sistema de software. Esta ligadura lenta, o ligadura dinámica, es un aspecto importante de la solución de un problema orientado a objetos.
Una de las características más importantes de la programación orientada a objetos es la capacidad de que diferentes objetos responden a órdenes similares de modo diferentes
Como se podrá observar el polimorfismo y la encapsulación de datos están íntimamente ligados y nos permiten un mayor grado de mantenibilidad y reusabilidad que los lenguajes tradicionales. Esta es precisamente una de las causas de la revolución que ha supuesto la introducción de los lenguajes orientados a objetos dentro de la programación.

Beneficios que posee la Programación Orientada a Objetos
La POO responde a problemas que han aquejado históricamente al desarrollo del software: falta de portabilidad y reusabilidad de código, ciclos de desarrollo largos, técnicas de codificación no intuitivas, etc.
El concepto de herencia introducido en POO permite la reusabilidad del código, resultando más sencillo modificar código existente ya que los objetos no interaccionan


excepto a través de mensajes. En consecuencia un cambio en la codificación de un objeto no afectará la operación con otro objeto. Esta reusabilidad de código no sólo disminuye el tiempo que se utiliza en el desarrollo y mantenimiento del software, sino que se traduce también en beneficios de costo y planificación.
Por otro lado este tipo de programación resulta más intuitiva ya que la lógica de pensamiento que se sigue es similar a la que normalmente el hombre utiliza en la vida real.
Algunas desventajas o inconvenientes que presenta la POO en la actualidad
El modelo orientado a objetos es un paradigma, o sea, una forma de ver el mundo (que se traduce a la computación) donde están involucradas la conceptualización de todos los elementos de un programa. Un paradigma diferente a los predecesores en los cuales fueron capacitados los programadores actuales, por lo que se requiere una transición hacia este nuevo modelo. La mayoría de los programadores deben capacitarse antes de trabajar con él.
Otra de las desventajas que se podría enumerar es la dependencia del lenguaje. A pesar de la portabilidad conceptual de los objetos en un sistema orientado a objetos, en la práctica existen muchas dependencias. Muchos lenguajes orientados a objetos están compitiendo actualmente para dominar el mercado. Cambiar el lenguaje de implementación de un sistema orientado a objetos no es una tarea sencilla; por ejemplo C++ soporta el concepto de herencia múltiple mientras que SmallTalk no lo soporta; en consecuencia la elección de un lenguaje tiene ramificaciones de diseño muy importantes.
Datos archivados del Taringa! original
0puntos
475visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
4visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

p
Usuario
Puntos0
Posts2
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.