che cos'è un metodo vuoto e come vengono utilizzati?

1

che cos'è un metodo vuoto e come vengono utilizzati?

Stavo leggendo un documento sul modello BUILDER e mi sono incuriosito su come è implementato in C ++. L'autore definisce che in C ++ potrebbe essere possibile implementare metodi vuoti come predefiniti nel modello di builder in modo da consentire ai client di sovrascrivere solo le operazioni a cui sono interessati. Qualcuno potrebbe spiegarmi quella frase in più dettagli con qualche esempio.

Grazie

    
posta Diego Alejandro Parra Guzman 13.02.2018 - 14:12
fonte

2 risposte

2

Un metodo vuoto è solo un metodo, ovvero una funzione che fa parte di una classe, che non fa altro che restituire un valore predefinito.

The author defines that in C++ could be possible to implement empty methods as default in the builder pattern in order to letting clients override only the operations they're interested.

Sembra che questo significhi solo che ci sia stata un'implementazione di base di alcune interfacce usando una classe base che aveva un numero di metodi vuoti che sono chiamati a punti interessanti. Un metodo vuoto è fondamentalmente un NOOP: c'è qualcosa da chiamare, ma non fa nulla, quindi l'esecuzione continua. Una sottoclasse potrebbe quindi sovrascrivere qualsiasi di questi metodi per fare qualcosa di interessante, ma non dovrebbe implementare metodi che non sono necessari. Senza questa classe base, chiunque implementasse l'interfaccia dovrebbe fornire tutti i metodi richiesti, anche se la maggior parte di essi non fa nulla.

    
risposta data 13.02.2018 - 15:39
fonte
0

Supponi di avere una classe astratta chiamata BatchHandler con tre metodi:

virtual void OnInit()

virtual void OnItem(Item e)

virtual void OnEnd()

Se questi metodi non erano vuoti ma semplicemente dichiarati, qualsiasi classe non astratta derivante da BatchHandler dovrebbe implementare tutti e tre i metodi indipendentemente dal fatto che li utilizzino o meno.

Se invece hai dichiarato tutti e tre vuoti, la classe derivata può scavalcare il metodo che sceglie. Credo che l'autore stia semplicemente affermando che i metodi vuoti sono l'impostazione predefinita, in modo che non sia necessario necessariamente dichiararli esplicitamente.

    
risposta data 13.02.2018 - 15:45
fonte

Leggi altre domande sui tag