The strategy pattern

The strategy pattern defines a set of algorithms, encapsulates each of them, and makes them interchangeable at runtime. This pattern lets the implementation vary independently from the clients that use it. In short, you can change the output of a class by changing the algorithm at runtime. The strategy pattern focuses on creating an interface with different implementations that follows the same behavioral contract. 

Let's understand this pattern with an example. Suppose you are developing an application to upload documents into the cloud. Initially, you have been provided with a Google Drive upload. You probably wrote the GoogleDriveCloud class and put all of the logic in that.

At a later stage, you decided to support ...

Get Java 9 Dependency Injection now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.