Функции предназначены для группировки связанных плагинов, которые должны быть установлены как один модуль в целевой системе.Таким образом, у вас обычно есть ряд функций для нетривиального приложения:
- основная функция с базовыми функциями приложения
- ряд функций для дополнительных функций надстройки
- ряд функций с базовой функциональностью
- ряд функций с основными коллекциями сторонних плагинов
Две или более функций могут включать в себя один и тот же плагин-in - плагин все еще будет существовать только в одном экземпляре в целевой системе.В особых случаях в целевой системе может даже существовать несколько разных версий одного и того же плагина.В других случаях, когда различные функции зависят от разных версий одного и того же подключаемого модуля, возникает конфликт, который должен быть разрешен разработчиком.
Функция также может включать или зависеть от других функций, и в этом случаезависимые функции должны быть также установлены в целевой системе.Таким образом, основная функция приложения зависит от необходимого ядра и сторонних функций, а также от сторонних функций.Установка зависимых функций обычно происходит автоматически с p2.p2 достаточно умен, чтобы загружать только необходимые плагины при установке или обновлении ...
Во время выполнения не имеет значения, каким образом конкретный плагин оказался в целевой системе, что дает числоопций в вашем случае.
При разделении плагинов на функции вы должны в первую очередь учитывать нужные приложения в целевой системе и нужные надстройки.Это становится действительно трудным, когда у вас есть несколько приложений или надстроек, каждое из которых использует подмножество основных плагинов или 3-х плагинов.
Вы не написали, есть ли у вас одно приложение илинесколько приложений, поэтому я предполагаю, что у вас есть одно приложение - довольно легко распространить идею на несколько приложений, которые используют общий набор плагинов.
Эту проблему можно решить несколькими различными способами.,Абсолютно самое простое решение - создать единую функцию приложения и включить в нее пользовательский интерфейс, ядро и сторонние плагины - более или менее, как вы предлагаете.Это прекрасно работает, если у вас есть только один продукт и вы не планируете использовать базовые плагины в других настройках.
Часто вы разделяете свои функции на функции ядра и пользовательского интерфейса.Чаще всего потому, что функциональные возможности пользовательского интерфейса разделены на различные функции, чтобы позволить конечному пользователю устанавливать только необходимые функции.
Таким образом, в вашем случае у вас также могут быть две функции: основная функция и функция приложения,который затем зависит от базовой функции.
Или вы можете иметь
- базовую функцию
- функциональность пользовательского интерфейса - которая зависит от базовой функции
- функция RCP (из Eclipse)
- и функция основного приложения, которая зависит от всех других функций
Существует множество способов сделать это ...