These are some of the benefits of the Strategy pattern:
- Encapsulation: A clear benefit of this pattern is that it enforces variations of algorithms to be encapsulated in individual classes. Hence, this helps us avoid using long conditional statements while keeping our code structured.
- Runtime: The main benefit of this pattern is that it implements a mechanism that permits us to swap algorithms that an object is using at runtime. This approach makes our objects more dynamic and open for extension.
The following are some potential drawbacks of the Strategy pattern:
- Client: The client class must be aware of the individual strategies and the variations in the algorithm they implement so as to know which one to select. Therefore, the client becomes responsible for making sure that an object is behaving as expected during its lifespan.
- Confusion: Because the Strategy and State patterns are so similar in structure but have different intents...