martes, 16 de febrero de 2010

PHP Orientado a objetos I

Con la nueva versión del motor Zend Engine 2.0, PHP 5.3.1 trae consigo muchas ventajas respecto a su antecesor PHP 4 respecto al manejo de la Programación Orientada a Objetos (POO o OOP de Object Oriented Programming en ingles). Si todavía Usted programa en forma estructurada, sometiéndose a largas jornadas para realizar modificaciones a su código o ampliando sus funciones a estructuras cada vez más complejas, La POO sin lugar a dudas se convertirá en un aliado importante, ahorrando tiempo, reutilizando código y mejorando el rendimiento de sus sitios o aplicaciones Web.

PROGRAMACIÓN ORIENTADA A OBJETOS

La POO es un paradigma de programación o una forma especial y particular de desarrollar software donde el eje principal lo determina la construcción de objetos y sus relaciones. Esta forma de programación, facilita la reutilización y mantenimiento de código. Se puede ampliar este concepto en Wikipedia

Según Grady Booch reconocido diseñador de software la programación orientada a objetos (POO) es, "un método de implementación en el que los programas se organizan como colecciones cooperativas de objetos, cada uno de los cuales representa una instancia de alguna clase, y cuyas clases son, todas ellas, miembros de una jerarquía de clases unidas mediante relaciones de herencia".

Con esta definición queda claro que al realizar un proyecto de software con programación orientada a objetos se debe tener especial atención a las relaciones entre objetos por medio de herencia. De lo contrario caeríamos en la programación basada en objetos.

Para comprender y adentrarnos en el mundo de la POO se debe tener claro algunos conceptos básicos que son fundamentales para un mejor aprendizaje

Clase: la clase se define como la estructura básica de los objetos, las clases contienen un conjunto de variables llamadas propiedades o atributos y funciones llamadas métodos o comportamientos, además las clases pueden heredar de otras ciertos comportamientos.

Objeto: un objeto es básicamente una instancia de una clase, es una abstracción que tiene información por medio de sus propiedades o atributos y comportamientos o acciones, por medio de sus métodos; cada objeto posee identidad que lo diferencia de los demás objetos, así sea instancia de una misma clase .

Mensajes: para que la POO sea funcional y eficiente entre los diferentes objetos debe existir un medio de comunicación que facilite la interacción entre ellos, estos son los mensajes, estos hacen que los objetos tengan estados y comportamientos diferentes.

Herencia: esencialmente consiste en la creación de nuevas clases a partir de otras ya existentes. Estas nuevas clases pueden invocar comportamientos de la clase padre cumpliendo con uno de los pilares de la POO

Polimorfismo: característica que permite a un objeto responder a un mensaje o evento en relación al numero de parámetros enviados al método de la clase.

Abstracción: esta es una de las fundamentales de la POO, donde se trabaja con las características de funcionamiento de un objeto, más se desconoce su implementación interna. El ejemplo de esta característica se evidencia cuando se desarrolla una aplicación utilizando una Base de Datos MySQL y necesitamos que esta misma aplicación funcione en PostgreSQL o cualquier otra BD sin realizar cambios complejos en el código actual. Esto es conocido como capa de Abstracción de acceso a BD y PHP 5 facilita este trabajo con PDO(PHP Data Objects) .

Ejemplos

$db = new PDO(‘mysql:host=localhost; dbname=mibasedatos’, ‘usuario’, ‘password’);

$db = new PDO(‘pgsql:dbname=miBD host=localhost’, $user, $pass);

Encapsulamiento: característica que permite a los atributos o propiedades de un objeto no ser visibles desde otros objetos, protegiendo el ESTADO o el cambio de valor de estos. Los cambios de estado solo serán factibles desde métodos o comportamientos propios del objeto.

Cohesión en OOP es el grado de unión o relación de las funciones de una clase para la ejecución de una tarea, sin depender de otras, entre mas alta sea la cohesión mejor se trabajará OPP. La contraparte es el Acoplamiento indicando la dependencia de otras clases para poder realizar un función específica, esta dependencias hacia otras clases hace que un sistema sea difícil de cambiar, actualizar o reutilizar. El acoplamiento debe ser lo más bajo posible

En la POO encontramos una gran variedad de palabras o siglas que se deben conocer o entender para así tener unas mejores bases y profundizar en conceptos más complejos.

No hay comentarios:

Publicar un comentario

Gracias por sus comentarios!