Interfaccia del processore Camel su classe astratta

1

Ho una classe astratta con uno o due metodi protetti necessari per le sottoclassi.

abstract class TransformRouteProcessor {

    protected String doX(String arg1){
        //doX code
    }

    protected int doY(String arg1) {
        //doY code
    }
}

Le sottoclassi dovranno implementare l'interfaccia del processore fornita da apache cammello per utilizzarle come parametri per un metodo .process in un percorso cammello tramite la sua offerta java dsl. Quello che sto cercando di prendere una decisione è se la classe astratta debba implementare questa interfaccia (che fornisce un unico metodo pubblico, un processo (scambio di Exchange)) e le classi concrete lo implementano, o ogni sottoclasse dovrebbe implementare l'interfaccia separatamente? Sto lottando con la decisione perché ho letto da alcuni che solo le classi che fanno uso dell'interfaccia dovrebbero implementarlo, ma altri stanno dicendo se le sottoclassi implementerebbero l'interfaccia a prescindere, e la classe astratta dovrebbe essere in grado di soddisfare il contratto che sarebbe in sottoclassi, quindi la classe astratta dovrebbe implementarlo e le sottoclassi forniscono quindi ogni dettaglio di implementazione del processo.

Vale la pena notare che le sottoclassi useranno i metodi protetti inalterati, ma ogni implementazione del metodo di processo varierà tra le sottoclassi, quindi il metodo di processo nella classe astratta non deve fornire una versione implementata del processo

    
posta jbailie1991 15.10.2017 - 17:44
fonte

0 risposte

Leggi altre domande sui tag