Если честно, я не уверен, что вы спрашиваете.Но я постараюсь ответить всегда.
Если вы используете (любые) функциональные возможности фреймворка непосредственно в своем коде, вы явно связываете свое приложение с фреймворком.Вот и весь смысл рамок.Он предлагает вам множество функций, которые обычно используются в различных типах приложений.Это можно рассматривать как основу для приложения.Эти функциональные возможности часто предоставляются через интерфейсы, поэтому при необходимости их можно заменить.Замена реализации не сделает ваше приложение менее связанным с фреймворком.Это просто позволяет вам использовать другой вид реализации;интерфейс по-прежнему будет фреймворком.
Итак, единственный способ предотвратить (тяжелую) связь с фреймворком - это написать свои собственные интерфейсы, которые абстрагируют все функциональные возможности фреймворка.После этого у вас могут быть прокси-классы, которые реализуют эти новые интерфейсы и не делают ничего, кроме прокси-запросов к соответствующим функциям платформы, что позволяет вам в будущем писать другие прокси-классы для другой платформы.
Если вы спросите меняэто звучит как плохая идея, хотя.Потому что, в конце концов, вы создаете свою собственную платформу на основе ваших собственных интерфейсов.Таким образом, вы используете дополнительный пользовательский код, который не добавляет никакой дополнительной функциональности, но сопряжен с дополнительным риском ошибок и ошибок.