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.

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.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

You May Also Like
Czytaj

Simple Command

Kto kiedykolwiek pracował w projekcie railsowym napewno widział tzw. fat controllers, gdzie logika poszczególnych akcji wpakowana jest bezpośrednio w…
Czytaj

Spread Operator w Ruby i Ruby Ranges

Wszyscy pamiętamy jak rewolucyjne w świecie JavaScriptu okazało sie wprowadzenie tzw. <strong>spread operator</strong> wraz ze standardem ES6. Praca z kolekcjami…
Czytaj

Range i Date w Ruby on Rails

W jednym z poprzednich postów pokazywałem przykład zastosowania obiektu Range w Ruby. Ruby on Rails posiada własne rozszerzenie klasy…
Czytaj

Ruby Mixins – Prepend

Ruby jak każdy język obiektowy opiera się na dziedziczeniu. Ze względu na ograniczenie, w postaci dziedziczenia na raz…
Czytaj

Ruby Mixins – Include

Ruby jak każdy język obiektowy opiera się na dziedziczeniu. Ze względu na ograniczenie, w postaci dziedziczenia na raz…