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
FacturableparaPedidoyPedidoComercial.interfaz
FacturableLa interfaz
Facturabledefine 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.