Я считаю, что это лучше всего достигается через слушателей.
Ваши данные (модель) находятся в закрытом пакете, и только интерфейсы этих данных представлены в общедоступном пакете.
В этом вики-разделе вы найдете принцип, а также конкретные примеры здесь .
Относительно модели, osgi-подобным подходом было бы использовать хост-плагин в качестве доступного объекта. то есть:
MyPlugin.getDefault().getModel()
Это позволит вам настроить / утилизировать модель вместе с жизненным циклом плагина.
Если модель находится в одном плагине, она может определять точки расширения для слушателей. Представление может расширять эти точки расширения, которые затем автоматически регистрируются при загрузке плагина Model. Представления могут запрашивать модель для получения необходимой информации, как только они получают первое сообщение от модели.
Хороший пример привязки данных можно найти в этой статье .