Junior — Middle
Have you applied the Strategy pattern in your projects?
sobes.tech AI
Answer from AI
The Strategy pattern allows defining a family of algorithms, encapsulating each one, and making them interchangeable. This is useful when you need to change the behavior of an object at runtime without modifying its code.
In Python, I applied this pattern, for example, to implement different data sorting methods depending on conditions:
class SortStrategy:
def sort(self, data):
pass
class QuickSortStrategy(SortStrategy):
def sort(self, data):
return sorted(data) # simplified
class ReverseSortStrategy(SortStrategy):
def sort(self, data):
return sorted(data, reverse=True)
class Context:
def __init__(self, strategy: SortStrategy):
self._strategy = strategy
def set_strategy(self, strategy: SortStrategy):
self._strategy = strategy
def sort_data(self, data):
return self._strategy.sort(data)
# Usage
context = Context(QuickSortStrategy())
print(context.sort_data([3, 1, 2])) # [1, 2, 3]
context.set_strategy(ReverseSortStrategy())
print(context.sort_data([3, 1, 2])) # [3, 2, 1]
This approach makes it easy to extend and change algorithms without modifying client code.