Monday, August 1, 2016

Adapter design pattern

Purpose: Allows incompatible interfaces to work together. The Adapter pattern acts as a bridge between two incompatible interfaces by converting the interface of a class into another interface that the client expects.

Adapter pattern works as a bridge between two incompatible interfaces.
Example:
1.      Suppose you have bought a laptop from India, and in recent past you have just moved to United Kingdom. The electric sockets used in UK is different from the Indian electric sockets. And hence, your laptop charger won’t work directly. You need to buy an adapter that can charge your Indian charger on UK electric socket.

2.      This pattern can be compared exactly to a real life adapter. E.g. The UK appliances cannot be used in the European plug socket. However, if we use the European adapter then we can use the UK appliances to any European socket

Here are some real-time use cases for the Adapter Design Pattern:

1. Legacy System Integration

  • Scenario: Your company has an old legacy system that needs to interact with a new system or technology stack. The legacy system might use an outdated API or data format.
  • Adapter Use Case: Create an adapter that translates calls from the new system into calls that the legacy system understands. This allows the new system to communicate with the legacy system without requiring significant modifications to either system.

2. Third-Party Library Integration

  • Scenario: You need to integrate a third-party library into your application, but the library’s API does not match the design of your application.
  • Adapter Use Case: Develop an adapter that wraps the third-party library’s API and provides a consistent interface that your application can use. This helps in maintaining a uniform interface in your application code.

3. Service Communication

  • Scenario: Your application needs to communicate with external web services or APIs that have different communication protocols or data formats (e.g., RESTful API vs. SOAP).
  • Adapter Use Case: Develop an adapter that converts requests and responses between the application’s expected protocol and the external service’s protocol. This helps in handling different communication standards and formats efficiently.

 


No comments:

Post a Comment