# -*- coding: utf-8 -*-
"""
Author : donghao
Time : 2021/11/3 2:57 下午
"""
from __future__ import absolute_import
from abc import ABCMeta, abstractmethod
class Strategy(metaclass=ABCMeta):
@abstractmethod
def execute(self, data):
pass
class FastStrategy(Strategy):
def execute(self, data):
print('快处理:%s' % data)
class SlowStrategy(Strategy):
def execute(self, data):
print('慢处理:%s' % data)
class Context(object):
def __init__(self, strategy, data):
self.data = data
self.strategy = strategy
def set_strategy(self, strategy):
self.strategy = strategy
def do_strategy(self):
self.strategy.execute(self.data)
data = 'ajdfls'
s1 = FastStrategy()
s2 = SlowStrategy()
context = Context(s1, data)
context.do_strategy()
context.set_strategy(s2)
context.do_strategy()