Подскажите, пожалуйста в каком направлении двигаться в реализации следующего класса
1. Класс представляет собой сервис, который может использоваться на различных платформах
2. Имеет одинаковый интерфейс для всех платформ
3. Реализация зависит от платформы и определяется на этапе компиляции
4. Пользовательская программа использует класс в виде, независимом от платформы
В данном контексте платформа — совокупность программных и аппаратных средств, необходимых для функционирования сервиса.
Возможно ли это сделать средствами C++ без использования условной компиляции?