![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
Banned
Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Это скорее не для того, чтобы гарантировать наличие методов, а для того, чтобы абсолютно разные классы принадлежали к одному типу данных.
Допустим диспатчат 2 разных класса одно событие и при этом оба класса применяют общий интерфейс (допустим ISomeInterface), но есть еще и другие классы, которые тоже диспатчат это событие. Нам же нужно делать что-то только с теми классами, которые применяют этот интерфейс. Для большей наглядности, допустим есть игра, в которой есть различные виды техники, которую нужно уничтожать. Все виды транспорта будут, естественно, принадлежать к разным классам (Car, Tank, Aaa и т.д.), но есть у них и одно общее, они все должны взрываться. Для этого создаем интерфейс, например IBlowable, с методом blow(); И имплементим его во всех классах техники. Теперь, при попадании бомбы в транспортное средство, мы можем проверить в обработчике события так: В этом случае нам не нужно будет проверять принадлежит ли цель к каждому конкретному виду техники, например так: Кто-то возможно скажет: "но ведь можно же, например, првоерить e.target is DisplayObject" И результат будет true. Но DisplayObject не имеет метода blow(); Вот, как-то так. Надеюсь не слишком стремное пояснение ![]() Последний раз редактировалось goodguy; 06.06.2011 в 21:34. |
![]() |
Часовой пояс GMT +4, время: 03:26. |
|
|
« Предыдущая тема | Следующая тема » |
|
|