Diferença entre include e extend

Quando falamos de módulos, include e extend são usados para adicionar funcionalidades em uma determinada classe.


Include

Quando usamos include, queremos adicionar métodos às instâncias de uma determinada classe.


Extend

Quando usamos extend, queremos adicionar métodos estáticos às classes desejadas.


Outros detalhes

Todos os métodos que são adicionados em uma classe através de extend são públicos. É possível, também, adicionar funcionalidades de um módulo em um objeto qualquer através do método extend. No entanto, os métodos disponíveis no módulo serão adicionados somente àquela instância.

O método extend pode ser usado para adicionar determinadas funcionalidades em qualquer classe. Não é necessário dizer que isto é perigoso, certo? Veja exemplos:

Like what you read? Give Rogério Zambon a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.