Ruby Mixins - Extend
💡

Ruby Mixins - Extend

Ruby jak każdy język obiektowy opiera się na dziedziczeniu. Ze względu na ograniczenie, w postaci dziedziczenia na raz tylko po jednej klasie twórcy języka zaproponowali mechanizm mixinów – dołączania modułów do klas. Pozwala to programistom na podążanie za dobrymi praktykami stosowania kompozycji zamiast dziedziczenia.

Jednym ze sposobów pozwalających na domieszkę modułu do klasy jest dyrektywa EXTEND.

Dyrektywa ta sprawia, że moduł zostaje włączony w łańcuch dziedziczenia obiektów jako singleton. Oznacza to, że metody zawarte w module dostępne są jako metody statyczne klasy.

image

Adapter Database rozszerzając się o moduł DatabaseHelper będzie mógł wyczyścić bazę danych bez konieczności tworzenia instancji adaptera używając clear_database jako metody statycznej.