Differenza tra Includere & Estendere in Ruby

March 9

Il linguaggio di programmazione Ruby ha un paio di modi di combinare i metodi di due classi. Le classi sono raccolte di metodi correlati e membri di dati. Due classi possono combinare i loro metodi che utilizzano le dichiarazioni includere o estendere. Entrambe queste affermazioni sono specializzati per uno scopo diverso e fare cose diverse.

I metodi di classe

Estendere i metodi moduli aggiunge specificate come metodi di classe alla classe di destinazione. I metodi di classe sono a disposizione di tutte le istanze della classe di destinazione. Ciò significa che tutti gli oggetti creati in base alla classe di destinazione hanno accesso ai metodi di qualsiasi classe che si estende. Pertanto, si estendono è un modo più universale per includere i metodi in una classe, in quanto colpisce tutte le istanze di quella classe.

Metodi di istanza

Includere aggiunge metodi di moduli specifici come metodi di istanza per la classe di destinazione. I metodi di istanza sono disponibili solo per la specifica istanza della classe di destinazione. Qualsiasi altra classe dello stesso tipo non hanno accesso ai metodi della classe incluse, se non ha anche il metodo comprende invocato su di esso.

Accesso variabile

Una classe di destinazione abbia accesso alle variabili di qualsiasi altra classe che è stato incluso. Estendere non fornisce questo accesso.

Pubblico contro privato

Include è un metodo privato, ed estendere è un metodo pubblico. Ciò significa che includono deve essere richiamato all'interno di un corpo di classe.