Perché non ci sono le interfacce Dimension and Point?

5

Intendo qualcosa sulla falsariga di:

public interface Dimensioned {
    int getWidth();
    int getHeight();
}

e

public interface Positioned {
    int getX();
    int getY();
}

Esiste un lotto di classi java standard che hanno esattamente quei metodi, in particolare Component e tutte le sue sottoclassi, nonché Dimension e Point . Image potrebbe implementare Dimensioned .
Nonostante l'uso diffuso di questi metodi, non esiste un modo uniforme di riferirsi a questi metodi. Si tratta di una decisione consapevole da parte dei progettisti di linguaggi? Nello scrivere questa domanda, ho notato che è piuttosto difficile da trovare con un buon nome descrittivo per le interfacce. Anche così, sembra che sarebbe utile averli. Non riesco a trovare molte informazioni sull'argomento.

    
posta Kyle Buzsaki 31.12.2012 - 19:11
fonte

1 risposta

8

Le interfacce non sono solo alcuni mezzi per raggruppare insieme classi che hanno nomi di funzioni comuni, devono avere un certo valore per il codice che chiama le funzioni. Avresti bisogno di un caso d'uso convincente per avere qualcosa come Vector<Dimensioned> e chiamare getWidth() su tutti i suoi elementi, che siano componenti o qualcos'altro. È facile trovare casi d'uso per un Vector<Component> o un Vector<Image> , ma non un miscuglio di entrambi. Sentirsi "come se fosse utile" non è un motivo valido.

    
risposta data 31.12.2012 - 22:06
fonte

Leggi altre domande sui tag