Простейший пример полиморфизма в Delphi состоит в методе, определенном в классе TControl. Класс TControl является абстрактным классом, который, за некоторыми исключениями, включает все компоненты, которые визуально присутствую! на форме при выполнении. Он обладает методом - Repaint, который, будучи вызван, регенерирует видимое представление элемента управления на экране.

TContral является абстрактным классом, содержащим лишь те элементы, которые должен содержать каждый элемент управления, и ничего больше. Не все элементы управления рисуют себя на экране одинаково, так что вопрос может состоять в следующем: если абстрактный класс TControl определяет метод Repaint, откуда он знает, как перерисовать большое количество происходящих от него элементов управления? Разумеется, он не знает. Все элементы управления классов-потомков, которые происходят от TControl, замещают метод Repaint из TControl новыми, собственными специфическими методами Repaint.

В известной мере, метод Repaint из TControl является меткой-заполнителем. Он может быть пустым или содержать лишь некоторый код установки, который относится ко всем операциям перерисования элементов управления любого типа. Что он действительно делает, так это обеспечивает специфическое место в иерархии объектов Delphi, куда могут быть посланы общие команды - "перерисуй себя". Затем эти общие команды обрабатываются каждым индивидуальным специфическим методом Repaint данного элемента управления, который производит физическое перерисование экрана для этого элемента управления.

Идеи и их реализация

Размышляя о полиморфизме, приходишь к очередному выводу: существуют идеи, и только после - их реализация. "Перерисование элемента управления" это идея, концепция, выполняющая работу по пути, заложенному в Delphi. Идея представляет что, но не обязательно как. Вы можете усвоить тот факт, что элемент управления нуждается в перерисовании, и ему не обязательно знать, как это происходит. Объект TControl является идеей объекта, который в Грандиозном Проекте Delphi представляет идею элемента управления без всех этих неприятных мелких деталей, которые определяют специфический элемент управления, работающий специфическим путем.

Полиформизм подразумевает отделение идеи от ее воплощения внутри иерархии классов объектов. Механизм, посредством которого работает полиформизм, расчитан на немного более подготовленных читателей, чем те, на которых расчитана первая книга по Delphi, но я объясню все это простым языком так, чтобы вы смогли заполнить последнюю брешь в вашей картине Грандиозного Проекта.

Указатели и маски

Вернувшись мысленно к моей истории о деревенском агенте Хэнке О'Корде, считайте, что он и в самом деле не знал всех фермеров деревни Куиадаско персонально.

Конечно, со многими из них он встречи гея, н() вряд-ли шд i всех. Он общался с ними посредством платы FAX/Modem и списка телефонных номеров, хранящихся в его компьютере. Тем не менее, он знал о них одну вещь, что все они фермеры Это было их основное занятие, общее для всех. Посылая им факс, он обращается ко всем фермерам вообще, а не к фермерам по выращиванию зерна или картофеля, или к фермерам, неправильно выращивающим свой салат-лутук.


⇐ Предыдущая страница| |Следующая страница ⇒

Программирование в среде Delphi



Новости за месяц

  • Декабрь
    2021
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31