У меня есть немного времени на разработку библиотеки абстракции платформы для приложения, которое я пишу, и изо всех сил пытаюсь придумать аккуратный способ отделить мой независимый от платформы код от специфичного для платформы кода.
Как я вижу, возможны два основных подхода: независимые от платформы классы с определенными платформой делегатами или независимые от платформы классы с определенными производными классами платформы. Существуют ли какие-либо присущие ему преимущества/недостатки? И в любом случае, какой лучший механизм для установления отношений делегирования/наследования, чтобы процесс был прозрачным для пользователя независимых от платформы классов?
Буду благодарен за любые предложения относительно аккуратной архитектуры для использования или даже некоторые примеры того, что делали люди в прошлом, и плюсы/минусы данного подхода.
EDIT: в ответ тем, кто предлагает Qt и тому подобное, да, я намеренно искал "изобретать колесо", поскольку я не просто занимаюсь разработкой приложения, но также заинтересован в интеллектуальном вызове собственную библиотеку абстракции платформы. Спасибо за предложение, хотя!