Python Design Patterns Tutorial
Python Design Patterns Resources
Selected Reading
- Exception Handling
- Python Design Patterns - Anti
- Concurrency in Python
- Strings & Serialization
- Python Design Patterns - Queues
- Python Design Patterns - Sets
- Lists Data Structure
- Dictionaries
- Python Design Patterns - Iterator
- Object Oriented Concepts Implementation
- Object Oriented
- Abstract Factory
- Python Design Patterns - Flyweight
- Python Design Patterns - Template
- Python Design Patterns - Strategy
- Python Design Patterns - State
- Python Design Patterns - Observer
- Chain of Responsibility Pattern
- Python Design Patterns - Proxy
- Python Design Patterns - Decorator
- Python Design Patterns - Adapter
- Python Design Patterns - Command
- Python Design Patterns - Facade
- Python Design Patterns - Prototype
- Python Design Patterns - Builder
- Python Design Patterns - Factory
- Python Design Patterns - Singleton
- Model View Controller Pattern
- Python Design Patterns - Gist
- Introduction
- Python Design Patterns - Home
Python Design Patterns Resources
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
Python Design Patterns - Strategy
Python Design Patterns - Strategy
The strategy pattern is a type of behavioral pattern. The main goal of strategy pattern is to enable cpent to choose from different algorithms or procedures to complete the specified task. Different algorithms can be swapped in and out without any comppcations for the mentioned task.
This pattern can be used to improve flexibipty when external resources are accessed.
How to implement the strategy pattern?
The program shown below helps in implementing the strategy pattern.
import types class StrategyExample: def __init__(self, func = None): self.name = Strategy Example 0 if func is not None: self.execute = types.MethodType(func, self) def execute(self): print(self.name) def execute_replacement1(self): print(self.name + from execute 1 ) def execute_replacement2(self): print(self.name + from execute 2 ) if __name__ == __main__ : strat0 = StrategyExample() strat1 = StrategyExample(execute_replacement1) strat1.name = Strategy Example 1 strat2 = StrategyExample(execute_replacement2) strat2.name = Strategy Example 2 strat0.execute() strat1.execute() strat2.execute()
Output
The above program generates the following output −
Explanation
It provides a pst of strategies from the functions, which execute the output. The major focus of this behavior pattern is behavior.
Advertisements