Ho un certo numero di classi (e interfacce) che "codificano su un'interfaccia"
interface File
{
...
}
interface FileConverter {
public function convert(File $file); //coding to an interface
public function success($message);
public function failure($message);
}
Sento che posso rendere ancora più generica l'interfaccia FileConverter
rimuovendo il File
type type-hint in questa interfaccia per consentire la conversione tra stringhe, array ecc piuttosto che solo le classi che implementano File
;
interface Converter {
public function convert($input);
public function success($message);
public function failure($message);
}
Tuttavia, se lo faccio, mi sembra di perdere l'aspetto di "codifica su interfaccia", anche se nessuna delle mie classi utilizza direttamente l'interfaccia FileConverter
. È una scelta saggia o dovrei creare un'interfaccia diversa? ie;
interface StringConverter {
public function convert(string $string); //PHP 7
public function success($message);
public function failure($message);
}