Các mẫu thiết kế Python - Chiến lược
Mô hình chiến lược là một loại mô hình hành vi. Mục tiêu chính của mô hình chiến lược là cho phép khách hàng chọn từ các thuật toán hoặc thủ tục khác nhau để hoàn thành nhiệm vụ được chỉ định. Các thuật toán khác nhau có thể được hoán đổi trong và ngoài mà không có bất kỳ sự phức tạp nào cho tác vụ được đề cập.
Mẫu này có thể được sử dụng để cải thiện tính linh hoạt khi các tài nguyên bên ngoài được truy cập.
Làm thế nào để thực hiện mô hình chiến lược?
Chương trình hiển thị bên dưới giúp thực hiện mô hình chiến lược.
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()
Đầu ra
Chương trình trên tạo ra kết quả sau:
Giải trình
Nó cung cấp một danh sách các chiến lược từ các hàm để thực thi đầu ra. Trọng tâm chính của mẫu hành vi này là hành vi.