# What is Strategy Design Pattern Strategy pattern is a behavioral software design pattern that enables selecting an algorithm at runtime. The strategy pattern * Defines a family of algorithms, * Encapsulates each algorithm, and * Makes the algorithms interchangeable within that family. ## Diagram ![Diagram](https://github.com/premaseem/DesignPatternsJava9/blob/strategy-pattern/diagrams/Strategy-Design-Pattern-class-diagram.jpeg "Diagram") ![Diagram](https://github.com/premaseem/DesignPatternsJava9/blob/strategy-pattern/diagrams/Strategy-Design-Pattern-generic.jpeg "Diagram") ![Diagram](https://github.com/premaseem/DesignPatternsJava9/blob/strategy-pattern/diagrams/strategyPatternSequenceDiagram.png "Diagram") ### When to use Strategy Design Pattern Strategy pattern is useful when we have multiple algorithms for specific task and we want our application to be flexible to chose any of the algorithm at runtime for specific task. ### Learn Design Patterns with Java by Aseem Jain This repository contains working project code used in video Course by Packt Publication with title "Learn Design Patterns with Java " authored by "Aseem Jain". ### Course link: https://www.packtpub.com/application-development/learn-design-patterns-java-9-video ### ![ http://in.linkedin.com/in/premaseem](https://github.com/premaseem/DesignPatternsJava9/blob/master/linkedin.png "http://in.linkedin.com/in/premaseem") Profile: http://in.linkedin.com/in/premaseem ### Authors blog on design patterns: https://premaseem.wordpress.com/category/computers/design-patterns/ ### Software Design pattern community face book page: https://www.facebook.com/DesignPatternGuru/ ### Note: * This code base will work on Java 9 and above versions. * `diagrams` folders carry UML diagrams. * `pattern` folder has code of primary example. * `patternBonus` folder has code of secondary or bonus example.