Страницу Назад
Поискать другие аналоги этой работы
5 Статические методы против виртуальных методовID: 113194Дата закачки: 30 Сентября 2013 Продавец: Slolka (Напишите, если есть вопросы) Посмотреть другие работы этого продавца Тип работы: Работа Форматы файлов: Microsoft Office Описание: Это весьма непростой и спорный вопрос. В "чистых" язы- ках, использующих подход OOP, статические методы не существу- ют; все методы являются виртуальными. И сторонник "чистого" подхода OOP мог бы сказать, что все методы в нашей иерархии объектов должны быть виртуальными именно по той причине, что виртуальные методы стоят на первом месте. Такой аргумент мож- но было бы признать справедливым, но еще больше истины в том, что делать все методы только виртуальными просто непрактично - по крайней мере, тогда, когда Вы программируете на Turbo Pascal. На наш взгляд, имеются два убедительных довода в пользу того, чтобы везде, где это только возможно, использовать ста- тические методы. Во-первых, интеллектуальный компоновщик Turbo Pascal не может отменять неиспользуемые виртуальные ме- тоды, а только неиспользуемые статические методы; простой акт ввода объекта данного типа приводит к тому, что в программу должны быть скомпонованы все виртуальные методы этого объек- та. И во-вторых, чем больше виртуальных методов имеет объект, тем обширнее его таблица виртуальных методов VMT: объект, имеющий 100 виртуальных методов, использовал бы более 400 байт пространства в сегменте данных. В системе Object Professional нет ни одного объекта, который бы имел так много виртуальных методов, но если бы все методы были виртуальными, в ней бы имелся не один такой объект. Полагая, что из практических соображений невозможно во всех случаях применять только одни виртуальные методы, мы стоим на тех позициях, что целесообразно создавать виртуаль- ные методы только в следующих трех случаях: а) если мы знаем, что он должен быть отменен объек- том-потомком, б) если метод предназначен для того, чтобы быть отменен- ным, и для этой цели и существует, в) если в самой природе метода заложена возможность то- го, что желательно его отменить в объекте-потомке. Указатели процедур против производных типов. Еще один концептуально спорный вопрос. Рассмотрим слу- чай, когда для некоторого объекта необходимо обеспечить средство, позволяющее программисту передавать такую информа- цию для объекта, которая не всегда бывает известна на момент компилирования. Наглядным примером такого объекта является "PickList" ("Список_Подбора") в модуле OPPICK: он должен обеспечить средство, которое предоставит Вам возможность "со- общить" ему, какие элементы имеются в списке подбора. Сторонник "чистого" метода мог бы сказать, что для реше- ния этой проблемы следует обеспечить фиктивный виртуальный метод, который, как предполагается, будет возвращать необхо- димую информацию, и пусть потом программист создает производ- ный тип, который отменяет этот метод. Но такой подход порож- дает две проблемы. Первая заключается в том, что было бы досадно, если бы КАЖДЫЙ раз, когда возникает потребность ис- пользовать, например, объект PickList, пришлось создавать производный тип, особенно в том случае, если все, что Вам действительно требуется - это написать функцию для восстанов- ления строки на основе номера элемента. Вторая проблема сос- тоит в том, что при этом в большинстве случаев исключается возможность использования одного и того же объекта PickList Размер файла: 12,2 Кбайт Фаил: (.zip)
Коментариев: 0 |
||||
Есть вопросы? Посмотри часто задаваемые вопросы и ответы на них. Опять не то? Мы можем помочь сделать! Некоторые похожие работы:Безопасность жизнедеятельности.ТестыБезопасность жизнедеятельности (код БЖ) Ещё искать по базе с такими же ключевыми словами. |
||||
Не можешь найти то что нужно? Мы можем помочь сделать! От 350 руб. за реферат, низкие цены. Спеши, предложение ограничено ! |
Вход в аккаунт:
Страницу Назад
Cодержание / Информатика / Статические методы против виртуальных методов
Вход в аккаунт: