9.3. Rozszerzanie repertuaru metod klasowych za pomocą modułów

Podziękowania dla Phila Thomsona

Problem

Chcemy wykorzystać metody dołączanego modułu w charakterze metod klasowych, nie metod instancyjnych.

Rozwiązanie

Można tego dokonać dokładnie tak, jak pokazaliśmy to w „9.2. Rozszerzanie wybranych obiektów za pomocą modułów”: wywołać metodę extend w stosunku do całej klasy, traktowanej wówczas jako obiekt. Dla tego obiektu zdefiniowane zostaną metody-singletony zaczerpnięte z dołączanego modułu. Takie rozwiązanie, całkowicie rozsądne z punktu widzenia twórcy modułu, nie zawsze jest najlepsze z perspektywy użytkownika tegoż modułu: użytkownik może nie wiedzieć o tym, że moduł zawiera metody pomyślane jako metody klasowe, i nie użyć ...

Get Ruby. Receptury now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.