Я бы пошел дальше и написал бы функциональность, независимую от инфраструктуры, и создал бы "идеальные" интерфейсы, которые вы используете.
Затем создайте мост между вашей функциональностью и фреймворком.
Обертывание чьей-либо структуры не обязательно является огромным выигрышем, если обертка представляет собой непосредственный перевод структуры! Вы удалите двоичную зависимость, но концептуально будете связаны с каркасом, что затруднит использование вашего кода вне каркаса.