Bloggo note ;)

aggiornamenti, appunti utili e informazioni sul mondo della programmazione.

[Ruby] – Differenza tra include e extend

Nota veloce veloce per spiegare, in parole povere, la differenza tra include ed extend in Ruby.

Supponiamo di voler incorporare un modulo in una nostra classe, quale usiamo tra i due? Possiamo usarli entrambi?

Diciamo subito che le differenze principali tra i due metodi sono:

  • extend incorpora i metodi di un modulo come metodi di classe (o, chi viene da PHP o Java, come metodi statici)
  • include, invece, incorpora i metodi di un modulo come metodi di istanza.

Dall’esempio sarà tutto molto più chiaro:

E’ possibile sia usare include che extend per lo stesso modulo nella stessa classe.

Il metodo extend, a differenza del metodo include, è un metodo pubblico.

Possiamo richiamare extend anche su un’istanza di oggetto, in questo caso l’istanza (e solo questa) avrà accesso ai metodi del modulo, esempio:

Quando richiamiamo include o extend Ruby invocherà le rispettive callback included e extended.

Per maggiori info rimandiamo alla documentazione Ruby.

Alla prossima.

miserve[Ruby] – Differenza tra include e extend
Share this post

Join the conversation