jueves, 2 de junio de 2016

Interfaces en PHP

Interfaces
El concepto de interfaz es procedente del mundo Java. Una interfaz es una entidad que encierra funcionalidades que pueden ser implementadas por diversos objetos. Son muy utiles para poder permitir identificar rapidamente las funcionalidades que un sistema software nos proporciona sin necesidad de acceder a ver los métodos de las clases que lo conformen. Esto se lleva a cabo mediante la palabra reservada interface. Veamos un ejemplo de interfaz escrita en PHP:

idataaccess.class.php
1 //-------------------------------------------------------------
2 // Implementación de la interfaz de acceso a base de datos
3 // Autor: Ildefonso Montero Pérez - monteroperez@us.es
4 //-------------------------------------------------------------
5 <?php
6 interface IDataAccess{
7 public function execute($sqlquery);
8 public function debugQuery($sqlquery);
9 }
10 ?>

Como podemos observar la definición es identica. En este caso dado que estamos definiendo un contenedor de funcionalidades, iremos introduciendo funciones dentro de esta definición. No tiene sentido que una interfaz sea definida si no va a existir por lo menos un objeto que sea capaz de implementarla. Esto quiere decir que necesitaremos definir una clase que implemente los metodos contenidos en esta interfaz. Veamoslo para el ejemplo anteriormente citado en el que la interfaz encierra funcionalidades típicas de una fachada de confrontacion de queries a una base de datos.

mysqldataaccess.class.php
1 //-------------------------------------------------------------
2 // Clase que confronta queries contra bbdd de tipo MySQL
3 // Autor: Ildefonso Montero Pérez - monteroperez@us.es
4 //-------------------------------------------------------------
5 <?php
6 class MySQLDataAccess implements IDataAccess{
...
public function execute($sqlquery) { ... }
public function debugQuery($sqlquery) { ... }
...
}
?>

En este ejemplo hemos introducido una clase que lleva a cabo la implementación de las funcionalidades introducidas en la interfaz definida anteriormente. Para ello podemos observar que se añade la palabra reservada implements.

No hay comentarios.:

Publicar un comentario