Q-1). What is the Adapter Design Pattern?
A-1). The Adapter Pattern converts one interface into another interface that clients expect, allowing incompatible interfaces to work together.
Q-2). What are the types of Adapter Design Patterns?
A-2). There are 2 types of Adapter Design Patterns as follows:
- Class Adapter (Inheritance)
- Object Adapter (Composition)
Q-3). When should you use the Adapter Pattern?
A-3). The Adapter Pattern is useful when:
- You need to integrate legacy code with new interfaces.
- Two systems with incompatible interfaces need to communicate.
Q-4). What is the difference between the Class Adapter and the Object Adapter?
A-4). The differences between the Class Adapter and the Object Adapter pattern are as follows:
Class Adapter | Object Adapter |
It uses inheritance | It uses composition |
The classes are tightly coupled | It is more flexible |
Q-5). How does the Adapter Pattern follow the Single Responsibility Principle?
A-5). The Adapter Pattern separates the concerns of the interface translation from the actual business logic.
Q-6). How does the Adapter Pattern differ from the Bridge Pattern?
A-6). The Adapter pattern is used to convert interfaces between two incompatible classes. Whereas the Bridge Pattern is used to separate abstraction from implementation.
Q-7). Can the Adapter Pattern be used with Dependency Injection?
A-7). Yes, the Adapter Pattern can be injected as a dependency into the client class, promoting loose coupling.
Q-8). What are the design trade-offs between Class Adapter and Object Adapter?
A-8). The design trade-offs between Class Adapter and Object Adapter are as follows.
- Class Adapter offers better performance but less flexibility.
- Object Adapter is more flexible but may have a slight performance overhead.