You’re going to need an adapter.
As you use more abstract classes and interfaces, you should start to use the adapter pattern.
Then, when an API or interface needs to change, you only have to update the adapter.
Imagine you’re taking orders from various partners, each of which sends a message written in a proprietary format. If you have a standard object passing orders into your internal system, you can separate the conversion of each proprietary format into separate adapters.
Each adapter would have one job: convert the message from the foreign language into the internal format. Then, if there are any changes in your partner’s messaging protocols, a developer can make the changes in the adapter.