November 2012
Intermediate to advanced
888 pages
54h 46m
Polish
Chcemy utworzyć klasę bazującą na kilku źródłach; niestety, język Ruby nie umożliwia wielokrotnego dziedziczenia klas.
Przypuśćmy, że zdefiniowaliśmy klasę Taggable, umożliwiającą związywanie z obiektami znaczników (tags) — krótkich łańcuchów zawierających metadane informacyjne. Jest oczywiste, że obiekty każdej klasy wywodzącej się z Taggable będą miały wymienioną własność; można by to twierdzenie odwrócić — każdy obiekt, który chcemy wyposażyć w możliwość „znacznikowania”, powinien być obiektem klasy Taggable lub jej subklasy.
Wydawałoby się, że nic prostszego, jak umiejscowić klasę Taggable na szczycie pewnej hierarchii — i tu niestety zaczynają ...