Где разместить бизнес-логику в программе Eclipse RCP - PullRequest
2 голосов
/ 31 июля 2010

Я пишу небольшое приложение в RCP, чтобы обернуть бизнес-логику в другую (не RCP) библиотеку моделирования.Я могу получить доступ к библиотеке и использовать ее из любого из моих плагинов, но я не знаю, куда мне поместить экземпляр библиотеки Simulation, чтобы, скажем, один из командных обработчиков мог ее вызывать.1002 * Из чтения документов звучит так, как будто я должен хранить «глобальную» информацию, подобную этой, в рабочей среде - но я до сих пор не совсем понимаю, как это сделать.

Ответы [ 2 ]

2 голосов
/ 01 августа 2010

Во-первых, бизнес-уровень (BL) может и должен находиться в своем собственном плагине.Это обеспечит приличное разделение между слоями.

Во-вторых, вы должны тщательно решить, каким должен быть интерфейс и какие классы доступны.В идеале вы должны в основном предоставлять интерфейсы и объекты данных.

Наконец, решите, как работает «рукопожатие».Например, как получить начальный интерфейс для BL.Поскольку это плагин, он может иметь активатор, который загружает его.Вы можете добавить метод в активатор, который возвращает интерфейс BL.

Если вы ищете что-то более изолированное, вы можете создать точку расширения или развернуть BL как службу OSGi, но это немногоизлишним для вас нужно.

0 голосов
/ 01 августа 2010

Если я вас правильно понимаю, я вижу два пути:

  1. Сохраните экземпляр в самом плагине модели, используя using SimulationFactory.getInstance (String myAppId) ‘. Переданная строка является константой в вашем приложении, которая всегда используется при получении ссылки.

  2. Определите новый класс, например GlobalAccess в вашем приложении, которое инициализируется с экземпляром вашей модели и имеет некоторый метод получения (используете ли вы один экземпляр снова или предоставляете только общедоступные статические методы - дело вкуса).

Способ seocond похож на некоторые классы в eclipse, такие как platfom или platformui, где вы можете получить исходные ссылки и перемещаться по рабочему столу.

редактировать

Я только что нашел учебник, который может вам помочь: Передача данных между плагинами

...