tria писал(а):Есть проект. Требуется не изменяя исходного кода проекта менять его работу под потребности заказчика, т.е. писать плагин, со следующими возможностями:
- добавлять новые реквизиты на форму,
- перепрописывать события существующих,
- вызывать процедуры из подулей объектов.
Возможно ли такое? Если да - то где бы про это почитать, на каких принципах это строится?
Нужно определиться какие плюшки даст вам система плагинов в ПО и оценить насколько это дорого в реализации, возможно ли и уместно ли в текущей архитектуре вообще. ИМХО всё из перечисленного про ООП, и решаемо без плагинов. Хотя плагины тоже ООП, те же программные интерфейсы, позволяют изолировать код, добавить абстракции, со всеми вытекающими +-, но если эти реализации интерфейсов включить в сам проект, то уже наверное не скажешь что у тебя система плагинов, чистый ООП. Опять ИМХО, системы плагинов оправданы в бэк-сервисах работающих в режиме 7/24, в которых с помощью тех же плагинов легко расширять функциональность, масштабировать, локализовывать проблемы. Подобные вещи позволяют сместить фокус разработки от программиста к инженеру, инженер легко становится архитектором сервисов, программисту легко реализовывать поставленные задачи, т.к. задача легко декомпозируется на отдельные плагины, тестировать unit-тестами, а так же автотестами если предусмотреть такую утилиту для системы, которая по заданному сценарию подаёт на вход сигнал/данные и сверяет выходной отклик с эталоном. Есть конечно ещё ниши просмотровых форм для разных типов данных, например как в Total Commander, но это наверное самый простой вариант - объяви базовый интерфейс (контракт) и реализуй его в своих плагинах (dll/bpl/unit).