- Clients remained decoupled and unaware of specific class they are using, as far as the underlying class adheres to the defined interface.
- The client does not need to know with which concrete class its interacting.
- Depending on the context, different implementation classes can be polymorphically provided without having to change client code. Makes it easy for the system to evolve.
- During development even though the concrete class is not available, the client class can be developed. Helps parallelize work.
This entry was posted
on Friday, September 5th, 2008 at 7:50 PM and is filed under Agile, Design.
You can follow any responses to this entry through the RSS 2.0 feed.
You can leave a response, or trackback from your own site.