This smell occurs when alternative classes offer different interfaces to their clients. Such classes make it difficult for the clients to use them (for instance, explicitly checking for their type).
Related smells: Duplicate Abstraction
M. Fowler, “Refactoring: Improving the Design of Existing Code”. Addison-Wesley, 1999.
All rights reserved (c) Tushar Sharma 2017-23.