• Авторизация


Библиотека 15-04-2011 12:29 к комментариям - к полной версии - понравилось!


Я не знаю, как в Руби (все мечтаю, что выдастся время посмотреть внимательно на него), а, вот, в СИ++ есть такая приятная штука, которая называется STL (Standart Template Library). Там реализованы шаблонные функции и класы. Шаблоны (templates), если совсем грубо, то это определение какой-то функции или класса, без указания конкретного типа данных, с которым происходит работа. Например, тот же самый sort() (Сортировка). Вы можете передать туда коллекцию, которая должна быть отсортирована. Но, чтобы отсортировать коллекцию, необходимо, чтобы объекты в коллекции поддерживали операции >, <, ==. Иначе говоря, шаблонная функция sort() готова будет отсортировать коллекцию объектов любых типов, если они поддерживают операции сравнения друг с другом. Ваш пользовательский класс инкапсулирует то, как он сравнивает, и чем он руководствуется. Таким образом, чтобы вы могли сортировать коллекции с объектами вашего нового класса, вам не надо писать никаких новых функций а-ля sortMyNewClass, или реализовывать интерфейс sortable, или изменять функцию sort(), чтобы она сравнивала иначе, в случае если classOf - это ваш новый класс. Достаточно в классе определить методы сравнения, и описать в них, как вы хотите, чтобы сравнивались объекты вашего класса друг с другом.
Надеюсь, получилось объяснить более-менее внятно. =)
P.S. По специфике своей работы, сам, 90% времени, использую PHP.
Вот в этом году доделаю свои проекты и буду два раза отдыхать на Кипре летом и зимой, уже на zeus.ru выбрал какие места посмотреть и где остановиться лучше.
вверх^ к полной версии понравилось! в evernote


Вы сейчас не можете прокомментировать это сообщение.

Дневник Библиотека | Rusov - Блог Русова | Лента друзей Rusov / Полная версия Добавить в друзья Страницы: раньше»