Спасибо за ссылку. Честно скажу про JFace Data Binding ранее слышал только краем уха, прочитал подробнее. Да, это также реализация паттерна Observer, да сигналы и слоты то же самое. Но возможности сигналов и слотов гораздо шире и преимущество в лаконичности. Если какой либо объект в любой момент времени вдруг решает что у него что-то изменилось он просто емитит сигнал, например:
То есть во время работы приватного метода MegaShooter.hardWork() были эмитированы 2 сигнала с сигнатурами multipleChanges(int, String, double) и simpleFlagChanged(boolean), эти изменения в код класса можно внести в любой момент и на его работе они никак не отразятся, до тех пор пока они не будут связаны с подходящими слотами:
И получаем тот же binding но малой кровью. Никаких лишних объявлений, никаких интерфейсов реализовывать принципиально не нужно. 4 binding'а, 3 объекта связаны, 4 метода(слота) вызываются.
Дельное замечание. Спасибо.
Хотя думаю если заменить MOC кодогенерацию на boost::signal отлаживать легче не станет.
То есть лисенеры в данном аспекте более прозрачны, и это я и имел ввиду.
Если Вы имеете ввиду Necessitas то он имеет массу ограничений, например тянет за собой довольно тяжеловесные Qt библиотеки, должен быть установлен отдельно, имеет ограничения по функционалу (не работал звук насколько я помню), и самое главное то что типичное Qt приложение имеет как правило свой UX, и на Android (look&feel) не похоже.
Моё решение адресовано именно Android API Java разработчикам, просто отдельно взятая технология, реализованная на другой платформе.
То есть во время работы приватного метода MegaShooter.hardWork() были эмитированы 2 сигнала с сигнатурами multipleChanges(int, String, double) и simpleFlagChanged(boolean), эти изменения в код класса можно внести в любой момент и на его работе они никак не отразятся, до тех пор пока они не будут связаны с подходящими слотами:
И получаем тот же binding но малой кровью. Никаких лишних объявлений, никаких интерфейсов реализовывать принципиально не нужно. 4 binding'а, 3 объекта связаны, 4 метода(слота) вызываются.
Хотя думаю если заменить MOC кодогенерацию на boost::signal отлаживать легче не станет.
То есть лисенеры в данном аспекте более прозрачны, и это я и имел ввиду.
Моё решение адресовано именно Android API Java разработчикам, просто отдельно взятая технология, реализованная на другой платформе.