» Главная
eXcode.ru » Статьи » Ruby
» Новости
» Опросы
» Файлы
» Журнал



Пользователей: 0
Гостей: 20





Максимов Сергей

health.aif.ua




Singleton-методы ruby




Поведение объекта класса определяется его принадлежностью к конкретному классу, но бывают случаи, когда некоторый объект должен иметь особое поведение. В большинстве языков мы должны в этом случае определить новый класс, который будет инстанциирован лишь один раз. В Ruby мы можем назначить любому объекту его собственные методы.



ruby> class SingletonTest

| def size

| print "25\n"

| end

| end

nil

ruby> test1 = SingletonTest.new

#<SingletonTest:0xbc468>

ruby> test2 = SingletonTest.new

#<SingletonTest:0xbae20>

ruby> def test2.size

| print "10\n"

| end

nil

ruby> test1.size

25

nil

ruby> test2.size

10

nil

В этом примере, test1 и test2 принадлежат одному и тому же классу, но для test2 переопределен метод size, так что он ведет себя по-другому. Метод, определенный только для единичного объекта, называется singleton-методом.

Singleton-методы часто используются для элементов (GUI), где при нажатии различных кнопок должны производиться различные действия.

Singleton-методы не являются характерными только для Ruby, они также присутствуют и в CLOS, Dylan, и т.д. Также в некоторых языках, например Self и NewtonScript, существуют только singleton-методы. Их иногда называют prototype-based языки.

Источник: www.opennet.ru
К началу статьи





Добавил: MadvEXДата публикации: 2007-10-16 09:14:11
Рейтинг статьи:3.00 [Голосов 10]Кол-во просмотров: 2862

Комментарии читателей

Всего комментариев: 0
Ваше имя: *
Текст записи: *
Имя:

Пароль:



Регистрация

Каким ICQ-клиентом вы пользуетесь?
Стандартным ICQ - клиентом.
11% (23)
Miranda 'ой
13% (29)
крысой - &RQ
5% (10)
Своим собственным :)
4% (8)
Не пользуюсь, так как сижу на модеме :(
1% (3)
Не пользуюсь, мне и так хорошо ...
6% (13)
Qip'ом
56% (121)
Другим
4% (8)

Проголосовало: 215
Пришел програмист в гости к пианисту. Очень долго ходил вокруг рояля и озвучивает свои наблюдения:
- Клавиатура не стандартная - 64 клавиши вместо 101, половина из них функциональные, но вот shift ногой нажимать-оригинально!
Рейтинг: 8.7/10 (3)
Посмотреть все анекдоты

 
eXcode.ru » Статьи » Ruby