策略模式+适配器模式代码实例
时间: 2024-04-09 09:26:29 浏览: 33
策略模式和适配器模式是常用的设计模式,它们可以在软件开发中提供灵活性和可扩展性。下面是策略模式和适配器模式的代码实例:
策略模式:
策略模式定义了一系列算法,并将每个算法封装成独立的类,使它们可以互相替换。以下是一个简单的策略模式代码示例:
```python
# 定义策略接口
class Strategy:
def do_operation(self, num1, num2):
pass
# 实现具体策略类
class OperationAdd(Strategy):
def do_operation(self, num1, num2):
return num1 + num2
class OperationSubtract(Strategy):
def do_operation(self, num1, num2):
return num1 - num2
class OperationMultiply(Strategy):
def do_operation(self, num1, num2):
return num1 * num2
# 定义上下文类
class Context:
def __init__(self, strategy):
self.strategy = strategy
def execute_strategy(self, num1, num2):
return self.strategy.do_operation(num1, num2)
# 使用示例
context = Context(OperationAdd())
result = context.execute_strategy(10, 5)
print(result) # 输出:15
context = Context(OperationSubtract())
result = context.execute_strategy(10, 5)
print(result) # 输出:5
```
适配器模式:
适配器模式用于将一个类的接口转换成客户端所期望的另一个接口。以下是一个简单的适配器模式代码示例:
```python
# 定义目标接口
class Target:
def request(self):
pass
# 实现适配者类
class Adaptee:
def specific_request(self):
print("适配者的特殊请求")
# 实现适配器类
class Adapter(Target):
def __init__(self, adaptee):
self.adaptee = adaptee
def request(self):
self.adaptee.specific_request()
# 使用示例
adaptee = Adaptee()
adapter = Adapter(adaptee)
adapter.request() # 输出:适配者的特殊请求
```