el barista

software libre, programación, cine, libros… y café

la reutilización de código al descubierto

Posted by elbarista en 6 mayo 2007

(este artículo forma parte de una serie dedicada a la programación orientado a objetos con php5.)

una de las grandes ventajas que tiene la POO es la posibilidad de reutilizar código. imagina el siguiente ejemplo: nos encargan diseñar una clase Pedido. después de un tiempo nuestra clase Pedido ya está en producción y funciona correctamente. sin embargo, un día llega el cliente y nos pide que, además de los pedidos normales, también demos soporte a pedidos con algún tipo de descuento.


podemos hacer una de dos cosas: 1) modificar la clase Pedido que ya tenemos, corriendo el riesgo de introducir nuevos errores y “romper” el código de otros programadores que ya están usando nuestra clase; o 2) dejar la clase Pedido como está y crear una nueva clase, llamada PedidoConDescuento, que extienda la funcionalidad de Pedido.

resulta obvio que lo mejor es extender la clase Pedido mediante la herencia. gracias a la herencia, lo único que tendrá que hacer PedidoConDescuento es redefinir (en inglés, override) aquellos métodos que deban funcionar de manera distinta, y/o añadir nuevos métodos para dar soporte a los nuevos requerimientos. los pedidos creados a partir de la clase Pedido seguirán comportándose como antes, mientras que los pedidos creados a partir de la clase PedidoConDescuento dispondrán de la nueva funcionalidad.

otra forma de reutilizar código es llamando a un método de la clase “madre” para utilizar su valor. por ejemplo, PedidoConDescuento podría redefinir el método calcularTotal() de la clase Pedido, para luego llamar al método calcularTotal() de Pedido y aplicarle el descuento al valor obtenido. es lo que podríamos denominar reutilización directa de código.

en resumen, la reutilización de código no sólo nos permite crear programas menos propensos a errores, sino que es fundamental para obtener diseños flexibles y robustos ante posibles cambios de requerimientos.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: