> -- Цитата:
> Чисто для расширения моего кругозора попросил бы Вас перечислить все разновидности расширяемости и виды модифицирования проекта. Такая классификация очень полезна.
а нету одновременно и полной и общепринятой)) сейчас общепринято всюду совать ООП. которое позволяет лишь расширять некоторые заранее предназначенные для этого части программы. но для этого надо заранее запланировать в архитектуре все возможные направления модификации. и потом говорят придется только добавлять код. в реальности оказывается)) что иногда кое-что нельзя было предвидеть при проектировании и как следствие возникает проблема "хрупких базовых классов" - часть системы уже нельзя изменить потому что развалится хитро зависящая от ее особенностей часть. и зависимостей если повсюду совать ООП будет мноого))
А для классификации... ну попробуйте например для начала представить себе морфологический ящик комбинаций расширений-сохранений-УРЕЗАНИЙ пары  модульсервис-модульклиент... и пометьте галочками какие из 9 вариантов поддержит ООП... и почему нужны хуки...