Ruby/Moduły: Różnice pomiędzy wersjami
Usunięta treść Dodana treść
Szymon wro (dyskusja | edycje) Nie podano opisu zmian |
Szymon wro (dyskusja | edycje) |
||
Linia 6:
* Moduł jest definiowany przez słowa kluczowe <tt>module</tt> i <tt>end</tt>.
Właściwie to...
Istnieją dwa typowe zastosowania modułów. Jedno to zebranie powiązanych metod i stałych w jednym centralnym miejscu. Moduł <tt>Math</tt> z standardowej biblioteki Rubiego odgrywa taką rolę:
Linia 17:
</pre>
Operator <tt>::</tt> mówi interpreterowi Rubiego, który moduł powinien on sprawdzić by pobrać wartość zmiennej (możliwe, że jakiś moduł oprócz <tt>Math</tt> może
<pre>
Linia 28:
</pre>
Inne użycie modułu nazywane jest domieszkowaniem klas (''mixin''). Niektóre języki obiektowe, włączając C++ lub Eiffel, pozwalają na wielokrotne dziedziczenie, to znaczy, dziedziczenie po więcej niż jednej nadklasie. Przykładem wielokrotnego dziedziczenia
Ruby celowo nie implementuje prawdziwego wielokrotnego dziedziczenia, ale domieszkowanie klas jest dobrą alternatywą. Pamiętaj, że moduły nie mogą posiadać instancji ani podklas. Ale jeśli włączymy (<tt>include</tt>) moduł w definicję klasy, jego metody będą efektywnie dodane czy też "wmieszane" w klasę.
Domieszkowanie klas może być rozważane jako
Takie użycie modułów dostarcza podstawowej funkcjonalności wielokrotnego dziedziczenia,
<noinclude>
{{Przypisy}}
|