Ho trovato in un libro ( Learning PHP Design Patterns , Capitolo 2, pagina 25) un testo che spiega l'importanza delle interfacce nella progettazione OOP. L'autore ha concluso dando questo esempio:
<?php
interface IConnectInfo
{
const HOST ="localhost";
const UNAME ="phpWorker";
const DBNAME = "dpPatt";
const PW ="easyWay";
function testConnection();
}
?>
Quindi implementa la suddetta interfaccia:
<?php
include_once('IConnectInfoMethod.php');
class ConSQL implements IConnectInfo
{
//Passing values using scope resolution operator
private $server=IConnectInfo::HOST;
private $currentDB= IConnectInfo::DBNAME;
private $user= IConnectInfo::UNAME;
private $pass= IConnectInfo::PW;
public function testConnection()
{
$hookup=new mysqli($this->server, $this->user, $this->pass, $this->currentDB);
if (mysqli_connect_error())
{
die('bad mojo');
}
print "You're hooked up Ace! <br />" . $hookup->host_info;
$hookup->close();
}
}
$useConstant = new ConSQL();
$useConstant->testConnection();
?>
Domanda :
In questo caso (collegandoti a DB ...) lo faresti davvero nella pratica? Voglio dire, rende anche sens per progettare un'interfaccia ( IConnectInfo
) per questo scopo?
Concettualmente, penso che questa interfaccia non abbia un senso in quanto lo scopo di un'interfaccia è di condividere il codice tra diverse classi non correlate; e d'altra parte, potremmo progettare perfettamente una classe semplice invece di salvare digitando tutto quel codice non necessario.
Se mi sbaglio, per favore dimmi i vantaggi dell'interfaccia in questo scenario.