lunes, 5 de mayo de 2008

Principios y Definiciones

Bueno para empezar voy a dejar los principios y definiciones basicas sobre La Programacion Orientada a Objetos (POO):

La Programacion Orientada a Objetos permite modelar la realidad, e de ahi que un modelo es la representacion limitada de alguna parte de la realidad, o de un sistema real.

Objetos:

Un Objeto es la Instancia de una clase, las clase es el molde o plantilla donde se pueden modelar los Objetos. Aqui se definiran los atributos, pero no los valores de los mismos.
Las Clases pueden ser instanciables o no, a aquellas que no lo son se las llama Abstractas y se utilizan como clases base de una jerarquía de herencia. Estas son compuestas por métodos abstractos que se definen en las clases base y si o si deben ser implementados en las clases derivadas de esta. Si una clase tienen un método abstracto obligatoriamente debe ser una clase abstracta.

Se dice por definicion que un objeto tiene:
Estado: Guarda en sí mismo la información que le corresponde.

Comportamiento: Es la capacidad de un objeto de hacer cosas o interactuar con otros
objetos(acciones). Depende del Estado.

Identidad: Unicidad, cada objeto es unico, no hay 2 objetos iguales, y esto es por más que
pertenescan a la misma clase.

El estado de los objetos está en los Atributos y el Comportamiento está en los Métodos.

Los objetos poseen varias características:
Herencia: Es la capacidad de un objeto de heredar atributos y métodos de otra clase, es decir
es la propiedad de definir una clase a partir de otra. En la mayoria de los lenguajes actuales,
quitando de la lista al C++, ninguno soporta herencia multiple, es decir solo se puede heredar
de una sola clase.

Polimorfismo: Es la propiedad que tienen los objetos de poder comportarse especificamente
por más que se los tratase genéricamente. Sin herencia no existiría el polimorfismo.

Encapsulamiento: El objeto no debe mostrar o exponer su estado sino a través de sus métodos.
El estado de un objeto es propio de sí mismo.

Interfaz de un Objeto: Son las acciones(métodos) publicas de un objeto. Esto quiere decir
que cualquier otro objetos puede verlos y utilizarlos.

Mensajes: Es la manera de comunicacion entre los objetos.

Si quieren profundizar sobre todos estos temas y otros más como la cardinalidad que es importante, vean este link:
Teoría de Objetos

Interfaces:
Es un contrato al cual se tienen que adherir las clases que la implementan. Es decir que si una clase utiliza una interfaz tiene que implementar TODOS los métodos que declara esa interfaz.
Una Interfaz no tiene estado, comportamiento ni unicidad, ya que no se puede instanciar, las interfaces sirven para poder darle un comportamiento especifico a los objetos que la implementan, pudiendo estos utilizar varias interfaces a la vez.

Si quieren saber un poco mas sobre interfaces:
Teoría Interfaces
Teoría Interfaces 2

Clases Abstractas vs Interfaces:
La diferencia entre clases abstractas e interfaces es más que nada conceptual. Debido a lo anteriormente explicado en la herencia de las clases, para cuando se quiere compartir solo un comportamiento utilizaremos interfaces y cuando se quiere compartir también estado usaremos herencia.

Conceptos sobre la buena programación:
Hay dos conceptos básicos a saber sobre como programar POO.
Acoplamiento: Mide el grado de relación y/o dependencia que tienen 2 o más componentes u objetos entre sí.
El acoplamiento se da fuera del objeto mismo, tiene que ver con la dependencia que él tiene de los que lo rodean o que los que lo rodean tienen de él.

Cohesión: Mide el grado de relación que tienen los miembros de un mismo componente para lograr cumplir con el objetivo o responsabilidad del mismo. Es decir la relación que poseen todos sus métodos para cumplir un mismo fin conciso. Seria lógico decir: "Cuanto tiene que ver el objeto con su objetivo o responsabilidad propuesta". Sucede dentro del objeto.

Aca Termina todo lo básico sobre POO. En el Proximo post ya van a poder ver algunos ejemplos de código hechos en java.

Ro Sevil
WH.

No hay comentarios.: