Не стреляйте в программиста, они грает как умеет. Особливо рекомендовано тем, кто считает, что ООП это нечто новое. Приводимый словарь появился на свет в 1992-93 г. при непосредственном участии э... в основном — меня, в недрах Севастопольского Приборостроительного Института. Текст не изменён.
public:
constructor Init;
Объектно-ориентированные программисты всех стран — инкапсулируйтесь!
virtual void run();
Фэнам объектно-ориентированного
программирования посвящается.
Словарь объектно-ориентированного
программирования. {// Базовый объект. //}
// v 4.0
// Словарь содержит абстрактный набор терминов, необходимых
// для порождения новых версий словаря.
// Поля:
// 1. Программистам об ООП.
// 2. Фэнам о программировании. ( разъяснение устаревших понятий. )
// 3. Руководство по использованию ООП.
// 4. Выводы и дестракторы.
ООП — 1 0глубоко ошибается тот, кто считает, что это —
объектно-ориентированное программирование. На самом деле, это
ОБЪЕКТНО-ОЗАБОЧЕННЫЙ ПРОГРАММИСТ. В жизни определяется по
проскакивающим в речи виртуальным дестракторам, уму, отсутствию
сообразительности, а также попыткам породить все и вся от одного
абстрактного объекта.
// Сходство с реальным человеком чисто случайное.
ОШИБКА — в ООП — вещь настолько тривиальная, что она не
заслуживает дальнейших разъяснений. ( Нормальное состояние
объектного проекта. )
ОС — программа, до которой ООП еще толком не добрались.
ОБЪЕКТ — 1. Беспредел развития любого программного продукта.
2. Образ мышления ООП.
АБСТРАКЦИЯ — в общем-то, неплохая штука, но никто не знает, что
это такое. Как правило, это становится ясно на заключительных
испытаниях программы.
КОНСТРАКТОР — некий метод, разрешающий вызывать
виртуальные дестракторы. Не бывает виртуальным.
ДЕСТРАКТОР — метод, после которого ничего уже
вызывать нельзя.
ВИРТУАЛЬНЫЙ МЕТОД — свободно замещаемый метод ( никогда
неизвестно, чем он окажется, что он делает и делает ли вообще ).
РЕКУРСИЯ — то же, что и перегрузка стека.
СБОЙ, КРАХ, РАЗРУШЕНИЕ — несвоевременный вызов дестрактора. ( см.
ОШИБКА. )
АССЕМБЛЕР — таблицы, таблицы, таблицы... От него можно
унаследовать компилятор, если получится.
ИЕРАРХИЯ — 1. Дерево, в корне которого сущая абстракция.
2. Квадратура круга.
ОБЪЕКТ-ПРЕДОК — объект, стоящий выше кого-либо по иерархии.
НАСЛЕДОВАНИЕ — искажение свойств объекта-предка.
ПОРОЖДЕНИЕ — см. НАСЛЕДОВАНИЕ ( Абстрактный метод. )
ТРИ — волшебное число. Число операторов во всякой
объектно-ориентированной программе стремится именно
к нему.
//На этом парадоксе основано лживое утверждение о том,
//что применение ООП приводит к упрощению программ.
СИ++, ПАСКАЛЬ 5.5 и выше — примерно тоже самое, что молоток и
плоскогубцы.
"ГОЛОВНАЯ БОЛЬ" — процесс разработки иерархии.
КОНЦЕПЦИЯ — см. АБСТРАКЦИЯ.
МЕТОД — дитя-переросток процедур и функций
неандертальской фазы развития программирования.
ПОЛЕ — неотъемлемая ненужная составная часть объекта.
СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ — недоразвитый предок
объектно-ориентированного программирования.
БЕЙСИК — тоже становится объектно-ориентированным языком.
ФОРТРАН — никогда им не станет. ( Хотя, кто знает... )
//Не станет, не станет — я его знаю.
ПРОГРАММА — см. ОБЪЕКТ.
СООБЩЕНИЕ — 1. Объект, который объекты посылают друг другу.
2. Объект, посредством которого объекты обмениваются между собой
другими объектами. 3. Вызов метода объекта.
ИНКАПСУЛЯЦИЯ — объединение программ, данных и
детской неожиданности.
СОБЫТИЕ — см. СООБЩЕНИЕ.
ПОЛИМОРФИЗМ — концепция, руководствуясь которой вы никогда не сможете точно сказать, что делает отдельно взятый объект.
ДРАЙВЕР — невидимая часть программы, генерирующая события, которые некому и незачем обрабатывать.
ПАМЯТЬ — абстрактный машинный ресурс, стремящийся к нулю.
АБСТРАКТНЫЙ МЕТОД — заголовок, начало и конец. Настоящие абстрактные методы не опускаются до текста внутри себя.
НАСТОЯЩИЙ ПРОГРАММИСТ — ООП (см.), создающий только абстрактные
объекты.
АБСТРАКТНЫЙ ОБЪЕКТ — 1. Объект, не имеющий полей и методов. 2.Основа
всякого объектно-ориентированного проекта. 3. Вершина любой
иерархии. 4. В крайнем случае, содержащий только абстрактные
методы. 5. Продукт деятельности настоящего
объектно-ориентированного программиста.
БЫСТРОДЕЙСТВИЕ — критерий предела абстракции в ООП.
КОЛЛЕКЦИЯ — абстрактный набор абстракций.
СОБЫТИЕ — объект, возникающий в результате чего-либо.
ЗАПИСЬ — объект без методов.
ПРОЦЕДУРА, ФУНКЦИЯ — метод без объекта.
ПЕРЕМЕННАЯ — см. ОБЪЕКТ.
БЛОК-СХЕМА (ГРАФ УПРАВЛЕНИЯ) — абсолютно никчемная вещь.( см.
АЛГОРИТМИЗАЦИЯ )
5000 СТРОК — нижний предел объема кода в объектно-ориентированной
программе. Добавив к этому числу ноль можно получить ту же
величину для хорошей объектно-оринтированной программы.
ХАКЕР — см. ООХ.
ООХ — объектно-ориентированный хакер. В отличие от ООП (см.) в его
речи не проскакивают виртуальные дестракторы поскольку он уже
распределен в статической памяти.
ПИВО — абстракция.
VMT — таблица виртуальных методов.
МНОЖЕСТВЕННОЕ НАСЛЕДОВАНИЕ — групповое искажение свойств
нескольких объектов.
СТИЛЬ — недостатки, присущие только одному программисту.
ЧЕЛОВЕК НИОТКУДА — автор документации на объектно-ориентированную
систему.
// Кто же еще может вразумительным языком описать все это...
АЛГОРИТМИЗАЦИЯ — разваливание объекта на части под присмотром
Вирта с Кнутом и иже с ними.
ПАСКАЛЬ 7.0 — клещи с редактором и проверкой вводимых данных.
УКАЗАТЕЛЬ — несколько байт, в которые записан чей-то адрес. Адепты ООП приписывают ему магические свойства.
ТИПИЗОВАННЫЙ УКАЗАТЕЛЬ — часто предполагается, что если его передать памяти, то она с радостью распределит в себе объект того типа, на который он любит указывать.
ТИП — 1. Это оченььь важно и нужно. 2. Тип как тип, — что в нем особенного.
СВОПИНГ — 1. Представьте, что вы жонглируете мячиками, периодически забрасывая половину из них под шкаф, чтобы руки не были заняты. Теперь представьте, что под шкафом они теряются и вам нужно бросать жонглирование, чтобы найти нужный. 2. Завораживающее слово. 3. Способ загрузить процессор и дисководы в свободное от работы время.
VROOMM — жонглер из предыдущего пункта.
ОПИСАНИЕ — список заголовков методов и прочей ерунды, снабженный многозначительными комментариями, состоящими из названия типа, окруженного звездочками.
ЗВЕЗДОЧКА — самая главная часть любого описания.
ДУРАК НА ХОЛМЕ — краткая характеристика разработчика объектно-ориентированной программы вместе с предшествующей абстракцией и последовавшей за ними документацией.
МИКРОПРОЦЕССОР — неизвестно что, но без него чего-то не хватает.
ДОКУМЕНТАЦИЯ — генеалогическое древо, заверенное в нотариальной конторе.
СПЕЦИФИКАЦИЯ — правила поведения для маленьких.
ИТЕРАТОР — 1. Объект, непрерывно прозводящий над каким-либо другим объектом одни и те же действия. 2. Начальник.
// Отдела, разрабатывающего объектно-ориентированный проект.
ФРЕЙМ — название объекта до того, как его додумались назвать объектом.
ГРУППА — несколько объектов, вставленных в другой, олицетворяющий всех. Именно ему передаются события.
МЫШКА — генератор событий сумасшедшей интенсивности.
РОМАНТИКА — чувство, возникающее при взгляде на 30000-строчную работающую программу.
ОТВЯЗКА — мироощущение после 30000-й строки.
МЕДИТАЦИЯ — первый сеанс отладки 30000-строчной программы.
ДИНАМИЧЕСКИЙ ВИРТУАЛЬНЫЙ МЕТОД — то же самое, что и виртуальный метод, перед запуском требует, чтобы его нашли в недрах памяти или на диске.
OLE (Object Loading & Embedding) — о-ля-ля от MicroSoft.
destructor Done;virtual;
Выводы и рекомендации.
1. Идеальная объектно-ориентированная программа абстрактна.
2. Всякий абстрактный метод ничего не делает.
3. Всякая идеальная объектно-ориентированная программа ничего не делает.
4а.Лучшая объекто-ориентированная программа на ПАСКАЛЕ :
begin
end.
4б.Лучшая объектно-ориентированная программа на СИ++ :
main(){}
5. We all live in a yellow submarine.
<<RSDN@Home 1.1.4 stable SR1 rev. 568>>
Music: Bobby McFerryn — Don't Worry, Be Happy
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!