There is a generally accepted feeling that Adapter is a
Post-development strategy for working with a class which was inadequately
designed in the past, in order to make it fit the current requirements. In
other words, it helps us to make the best of a bad situation. I do not agree
totally. Adapter can be designed up front to ensure that you are eventually
compatible with the class you really want to work with. The other issue is
that you are in a sense providing some of the work which the expensive toolkit
already implements. But if it provides a level of abstraction that a team of
programmers find useful in not only making them more productive, but also
providing a standard way of communicating across the project, not to mention
removing the necessity of universal recognition-zone-based coding from all
their various client codes, then it is well worth it.