- just get it done, in which case pretty much any solution will work for you
- be pedantic and design a solution which exploits the quirks of the language an its ideology (OO languages in this case - the use of polymorphism as a mean to provide the decision)
But what would happendhappen, if you chose to do it the pedantic way and actually solved the problem with design patterns, in the way you wanted it do?
Ideally, you would have unit tests testing the 4 adapter classes you created to make sure they work, you make your test pass. And if they pass, you can be pretty sure they will work no matter where you call them in your code.