Fundamentos del enfoque orientado a objetos y características

Fundamentos del enfoque orientado a objetos y características


A las hora de programar se denotan principalmente como 2 maneras de hacerlo una es estructurada en la cual se trabaja de manera concreta y continua y otra es la programación orientada a objetos es una forma de organizar el código de un programa agrupándolo en objetos, que son elementos individuales que contienen información (valores de datos) y funcionalidad. 

Que según sea el case puede llegar a ser fertilizable el código,puede ser mas potable, para ver en que se basa tenemos unos principales fundamentos o basamentos estan: la Abstracción, el Encapsulamiento, la Modularidad y la Herencia.


Fundamento 1: Abstracción

Es el principio de ignorar aquellos aspectos de un fenómeno observado que no son relevantes, con el objetivo de concentrarse en aquellos que si lo son. Una abstracción denota las características esenciales de un objeto (datos y operaciones),que lo distingue de otras clases de objetos.

Decidir el conjunto correcto deabstracciones de un determinado dominio, es el problema central del diseño orientado aobjetos.Los mecanismos de abstracción son usados en el EOO para extraer y definir delmedio a modelar, sus características y su comportamiento. Dentro del EOO son muyusados mecanismos de abstracción: la Generalización, la Agregación y la clasificación.

La generalización es el mecanismo de abstracción mediante el cual un conjunto declases de objetos son agrupados en una clase de nivel superior (Superclase), donde lassemejanzas de las clases constituyentes (Subclases) son enfatizadas, y las diferenciasentre ellas son ignoradas. En consecuencia, a través de la generalización, la superclasealmacena datos generales de las subclases, y las subclases almacenan sólo datosparticulares.La especialización es lo contrario de la generalización. Por ejemplo; Laclase Médico es una especialización de la clase Persona, y a su vez, la clase Pediatraes una especialización de la superclase Médico.



Fundamento 2: Encapsulamiento
Es la propiedad del EOO que permite ocultar al mundo exterior la representacióninterna del objeto. Esto quiere decir que el objeto puede ser utilizado, pero los datosesenciales del mismo no son conocidos fuera de él. La idea central delencapsulamiento es esconder los detalles y mostrar lo relevante.

Permite elocultamiento de la información separando el aspecto correspondiente a laespecificación de la implementación; de esta forma, distingue el "qué hacer" del "cómohacer". La especificación es visible al usuario, mientras que la implementación se le oculta. El encapsulamiento en un sistema orientado a objeto se representa en cadaclase u objeto, definiendo sus atributos y métodos con los siguientes modos de acceso:Público (+): Atributos o Métodos que son accesibles fuera de la clase.




Fundamento 3: Modularidad

Es la propiedad que permite tener independencia entre las diferentes partes de unsistema. La modularidad consiste en dividir un programa en módulos o partes, quepueden ser compilados separadamente, pero que tienen conexiones con otros módulos.En un mismo módulo se suele colocar clases y objetos que guarden una estrecharelación. El sentido de modularidad está muy relacionado con el ocultamiento deinformación.


Fundamento 4: Herencia

Es el proceso mediante el cual un objeto de una clase adquiere propiedades definidasen otra clase que lo preceda en una jerarquía de clasificaciones. Permite la definiciónde un nuevo objeto a partir de otros, agregando las diferencias entre ellos(Programación Diferencial), evitando repetición de código y permitiendo la reusabilidad.Las clases heredan los datos y métodos de la superclase. Un método heredado puedeser sustituido por uno propio si ambos tienen el mismo nombre.

La herencia puede ser simple (cada clase tiene sólo una superclase) o múltiple (cada clase puede tener asociada varias superclases). La clase Docente y la clase Estudiante heredan laspropiedades de la clase Persona (superclase, herencia simple). La clase Preparador (subclase) hereda propiedades de la clase Docente y de la clase Estudiante (herenciamúltiple).


Fundamento 5: Polimorfismo
Es una propiedad del EOO que permite que un método tenga múltiplesimplementaciones, que se seleccionan en base al tipo objeto indicado al solicitar laejecución del método. El polimorfismo operacional o Sobrecarga operacional permiteaplicar operaciones con igual nombre a diferentes clases o están relacionados entérminos de inclusión.

En este tipo de polimorfismo, los métodos son interpretados en elcontexto del objeto particular, ya que los métodos con nombres comunes sonimplementados de diferente manera dependiendo de cada clase.Por ejemplo, el área de un cuadrado, rectángulo y círculo, son calculados de maneradistinta; sin embargo, en sus clases respectivas puede existir la implementación delárea bajo el nombre común Área. En la práctica y dependiendo del objeto que llame almétodo, se usará el código correspondiente.


Las características siguientes son las más importantes:

  • Abstracción: Denota las características esenciales de un objeto, donde se capturansus comportamientos.Cada objeto en el sistema sirve como modelo de un "agente"abstracto que puede realizar trabajo, informar y cambiar su estado, y "comunicarse" conotros objetos en el sistema sin revelar cómo se implementan estas características. Losprocesos, las funciones o los métodos pueden también ser abstraídos y cuando loestán, una variedad de técnicas son requeridas para ampliar una abstracción.
  • Encapsulamiento: Significa reunir a todos los elementos que pueden considerarsepertenecientes a una misma entidad, al mismo nivel de abstracción. Esto permiteaumentar la cohesión de los componentes del sistema. Algunos autores confunden esteconcepto con el principio de ocultación, principalmente porque se suelen emplear conjuntamente.
  • Modularidad: Se denomina Modularidad a la propiedad que permite subdividir unaaplicación en partes más pequeñas (llamadas módulos), cada una de las cuales debeser tan independiente como sea posible de la aplicación en sí y de las restantes partes.Estos módulos se pueden compilar por separado, pero tienen conexiones con otrosmódulos. Al igual que la encapsulación, los lenguajes soportan la Modularidad dediversas formas.
  • Principio de ocultación: Cada objeto está aislado del exterior, es un módulo natural, ycada tipo de objeto expone una interfaz a otros objetos que específica cómo puedeninteractuar con los objetos de la clase. El aislamiento protege a las propiedades de unobjeto contra su modificación por quien no tenga derecho a acceder a ellas, solamentelos propios métodos internos del objeto pueden acceder a su estado. 
  • Polimorfismo: Comportamientos diferentes, asociados a objetos distintos, puedencompartir el mismo nombre, al llamarlos por ese nombre se utilizará el comportamientocorrespondiente al objeto que se esté usando. 
  • Herencia: Las clases no están aisladas, sino que se relacionan entre sí, formandouna jerarquía de clasificación. Los objetos heredan las propiedades y elcomportamiento de todas las clases a las que pertenecen. 
  • Recolección de basura: La recolección de basura o garbage collector es la técnicapor la cual el entorno de objetos se encarga de destruir automáticamente, y por tantodesvincular la memoria asociada, los objetos que hayan quedado sin ninguna referenciaa ellos. Esto significa que el programador no debe preocuparse por la asignación oliberación de memoria, ya que el entorno la asignará al crear un nuevo objeto y laliberará cuando nadie lo esté usando. En la mayoría de los lenguajes híbridos que seextendieron para soportar el Paradigma de Programación Orientada a Objetos como C++ u Object Pascal, esta característica no existe y la memoria debe desasignarsemanualmente.Componentes fundamentales del Enfoque Orientado a Objetos
  • Clase: Definiciones de las propiedades y comportamiento de un tipo de objetoconcreto. La instanciación es la lctura de estas definiciones y la creación de un objeto apartir de ellas.
  • Herencia: (Por ejemplo, herencia de la clase C a la clase D) Es la facilidad mediantela cual la clase D hereda en ella cada uno de los atributos y operaciones de C, como siesos atributos y operaciones hubiesen sido definidos por la misma D. Por lo tanto,puede usar los mismos métodos y variables publicas declaradas en C. Loscomponentes registrados como "privados" (private) también se heredan, pero como nopertenecen a la clase, se mantienen escondidos al programador y sólo pueden ser accedidos a través de otros métodos públicos. Esto es así para mantener hegemónicoel ideal de OOP.
  • Objeto: Entidad provista de un conjunto de propiedades o atributos (datos) y decomportamiento o funcionalidad (métodos) los mismos que consecuentementereaccionan a eventos. Se corresponde con los objetos reales del mundo que nos rodea,o a objetos internos del sistema (del programa). Es una instancia a una clase.
  • Método: Algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecución sedesencadena tras la recepción de un "mensaje". Desde el punto de vista delcomportamiento, es lo que el objeto puede hacer. Un método puede producir un cambioen las propiedades del objeto, o la generación de un "evento" con un nuevo mensajepara otro objeto del sistema.
  • Evento: Es un suceso en el sistema (tal como una interacción del usuario con lamáquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando elmensaje adecuado al objeto pertinente. También se puede definir como evento, a lareacción que puede desencadenar un objeto, es decir la acción que genera.

Comentarios

Entradas populares