Точки расширения

Точки расширения #

Основное правило построения модульных программных систем заключается в том, что нужно избегать сильной связи между компонентами системы. Если компоненты сильно интегрированы друг с другом, становится трудно собирать части системы в разные конфигурации или заменять компонент другой его реализацией, не вызывая при этом изменений во всей системе.

В Eclipse слабая связанность достигается благодаря механизму расширений и точек расширения. Самое простое сравнение для описания расширений и точек расширения — это электрические розетки. Розетка — это точка расширения. Вилка, которая включается в нее, — это расширение. Как электрические розетки могут быть разных форм и размеров, так и точки расширения могут быть самыми разными. Подключиться к некоторой точке расширения может только то расширение, которое создано для этой конкретной точки.

Когда один плагин хочет разрешить другим плагинам расширять или изменять часть своей функциональности, он объявляет точку расширения. Точка расширения объявляет контракт (обычно это комбинация XML-описания и Java-интерфейсов), которому должны соответствовать подключающиеся расширения. Плагин, который хочет подключиться к этой точке расширения, должен реализовывать этот контракт в своем расширении. Ключевым моментом здесь является то, что расширяемый плагин (А) ничего не знает о подключаемом плагине (Б), что выходит за рамки контракта точки расширения плагина А. Это позволяет беспрепятственно взаимодействовать между собой плагинам, которые созданы разными разработчиками или компаниями, даже не зная многого друг о друге.

1C:EDT представляет собой набор плагинов, расширяющих платформу Eclipse. Эти плагины позволяют разрабатывать прикладные решения на платформе «1С:Предприятие». Таким образом, вы как разработчики плагинов имеете все стандартные возможности расширения платформы Eclipse, а дополнительно к этому мы предоставляем вам точки расширения для наших плагинов 1C:EDT.

Подробнее о расширениях и точках расширения читайте здесь (на английском языке).