На сем форуме иногда можно встретить мнения, что все существующие парадигмы программирования являются частным случаем ООП, в определении создателя первоначального варианта термина Алана Кея.
«ООП для меня это сообщения, локальное удержание и защита, скрытие состояния и позднее связывание всего. Это можно сделать в Smalltalk и в LISP.»
Доля истины в этом есть, т.к., можно легко доказать, что процедурное и функциональное программирование в таком определении являются частными случаями ООП, т.к. функции тоже являются объектами. Правда, в случае процедурного программирования придётся закрыть глаза, как минимум, на скрытие состояния.
Однако, концепция исключений (хотя бы в С++ варианте), похоже, всё же не вписывается в концепцию ООП как частный случай. Т.к. исключения являются сигналами, но не сообщениями (за отсутствием конкретных адресатов). Т.е., конкретного объекта, ловящего исключения может и не быть, даже NULL объекта.
Так что, исключения — не частный случай АланКеевского ООП?
Перемещено tailgunner из development