Interfaces¶
Permite definir un contrato con las firmas de los métodos a cumplir. Así pues, solo contiene declaraciones de funciones y todas deben ser públicas.
Se declaran con la palabra clave interface
y luego las clases que cumplan el contrato lo realizan mediante la palabra clave implements
.
<?php
interface Nombreable {
// declaración de funciones
}
class NombreClase implements NombreInterfaz {
// código de la clase
}
PHP también permite la herencia de interfaces. Además, una clase puede implementar varios interfaces (en este caso, sí soporta la herencia múltiple, pero sólo de interfaces).
<?php
interface Mostrable {
public function mostrarResumen() : string;
}
interface MostrableTodo extends Mostrable {
public function mostrarTodo() : string;
}
interface Facturable {
public function generarFactura() : string;
}
class Producto implements MostrableTodo, Facturable {
// Implementaciones de los métodos
// Obligatoriamente deberá implementar public function mostrarResumen, mostrarTodo y generarFactura
}
Actividad¶
-
PR 313. (RA3 / CE3b CE3c CE3d CE3g / IC2 / 5p) - Siguiendo con el proyecto de e-commerce, se necesita que implementes la interfaz
Facturable
paraPedido
yPedidoComercial
.interfaz
Facturable
La interfaz
Facturable
define las operaciones que debe cumplir cualquier clase que pueda generar o gestionar una factura. Algunas operaciones típicas que podría incluir son:calcularTotal()
: permite obtener el total a pagar por el pedido, incluyendo posibles descuentos, impuestos o tasas adicionales.generarFactura()
: genera un artefacto que representa la factura del pedido, incluyendo todos los datos necesarios (cliente, productos, precios, totales).obtenerDatosFactura()
: devuelve los datos necesarios para construir la factura, como el número de pedido, nombre del cliente, dirección de facturación, etc.aplicarDescuento()
: (opcional) si el sistema lo permite, esta operación aplicaría descuentos comerciales o promocionales al pedido antes de generar la factura.