Возможно, вы хотите, чтобы пользовательский интерфейс вызывал функциональность, а не наоборот. Это лучшая практика. Вы можете использовать механизм событий или обратные вызовы, если вам нужно наблюдать за проектом Functionality и отвечать на события.
Пользовательский интерфейс, вызывающий Функциональность и Функциональность, вызывающий пользовательский интерфейс, непреднамеренно будет циклической ссылкой. Вы хотите избежать этого.