Из того, что вы описали, затем используйте то, что вам нужно будет написать, это какая-то форма адаптера для объединения базовых реализаций.
Если цель состоит в том, чтобы предоставить единый интерфейс для двух API-интерфейсов служб и скрыть тот факт, что действительно существуют две разные реализации, то вам необходимо стремиться скрыть все различия между этими двумя службами от пользователя вашего Финальный фасад. Это потребует некоторой работы, поскольку, как вы указали, одна служба может поддерживать один метод, но не другой.
Если, однако, цель состоит в том, чтобы просто предоставить один и тот же интерфейс только для того, чтобы пользователю было легко переключаться между базовой реализацией, которую он хочет использовать, то это может быть менее важным. Вы, вероятно, можете просто документально подтвердить, что реализация x не поддерживает метод y.
Здесь нет сложных и быстрых ответов: в первом случае вам необходимо четко определить мотивацию, потому что я считаю, что, как я уже сказал, есть как минимум две возможности, и каждая из них, вероятно, требует немного другого подхода. Но чтобы ответить на ваш вопрос, да, вам нужен адаптер, но вполне то, как вы хотите, чтобы адаптер работал, что можно определить только в том случае, если вы сначала укажете причину предоставления этого API.