È una buona idea denominare contestualmente interfacce funzionali predefinite?

1

Attualmente sto lavorando con Java 8 e uso molto le interfacce funzionali. Mi trovo spesso a scrivere codice come questo:

public interface MessageHandler extends Consumer<String> { }

Questa è una buona idea o un indicatore di me che abusa interfacce funzionali per far sentire Java più simile a C #?

Modifica: Forse per espandere un po ':

public class MessageGenerator {

    public void registerMessageHandler(MessageHandler handler) { 
    // [...]

    public interface MessageHandler extends Consumer<String> { }
}
    
posta Janis F 23.03.2015 - 09:42
fonte

2 risposte

4

Sono pienamente d'accordo con questo:

Interfaces should almost always be named after what they do, not after some generic syntactic idea.

(Tratto da questa risposta: link )

Quindi, aggiungendo un'interfaccia funzionale il cui nome spiega con precisione in che cosa verrà utilizzato il sottostante Consumer<String> è un'ottima idea. Non danneggia nulla e migliora la leggibilità.

    
risposta data 23.03.2015 - 10:39
fonte
2

Qualsiasi cosa che renda il codice più leggibile mantenendo la semantica invariata è buona. Che ciò sia dovuto o meno alla tua esperienza con un'altra lingua è irrilevante - i linguaggi di programmazione sono strumenti per raggiungere fini, non valori in se stessi.

Pertanto, se il tuo modo di scrivere le cose è migliore rispetto all'utilizzo dei tipi forniti in linguaggio semplice, fallo. (Le cose potrebbero essere diverse se aggiungere un altro livello di tipi influenza l'efficienza del codice che viene effettivamente eseguito, ma sono abbastanza certo che in questo caso non lo è.)

    
risposta data 23.03.2015 - 09:49
fonte

Leggi altre domande sui tag