策略模式--沙漠寻宝。人工智能代码
时间: 2024-10-25 08:07:18 浏览: 10
22--[海底寻宝].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码
策略模式是一种设计模式,它允许在运行时改变对象的行为,而不影响到该对象本身。在“沙漠寻宝”这个场景中,可以将其想象成一个探险家有多种寻找宝藏的策略,比如依赖地图、使用探测设备或依赖当地土著的传统知识。
```python
# 定义策略接口
class TreasureStrategy:
def search(self):
pass
# 实现不同的寻宝策略
class MapStrategy(TreasureStrategy):
def search(self):
print("使用地图搜索")
class DetectorStrategy(TreasureStrategy):
def search(self):
print("使用探测设备搜索")
class TribalKnowledgeStrategy(TreasureStrategy):
def search(self):
print("咨询当地土著传统知识")
# 探险家角色
class Explorer:
def __init__(self, strategy: TreasureStrategy):
self.strategy = strategy
def set_strategy(self, new_strategy: TreasureStrategy):
self.strategy = new_strategy
def search_for_treasure(self):
self.strategy.search()
# 使用策略模式
explorer = Explorer(MapStrategy())
explorer.search_for_treasure() # 输出 "使用地图搜索"
explorer.set_strategy(DetectorStrategy())
explorer.search_for_treasure() # 输出 "使用探测设备搜索"
```
在这个例子中,`Explorer`类持有一个`TreasureStrategy`类型的引用,并在需要的时候切换策略。这样,即使没有修改`Explorer`本身的代码,也能动态地改变其寻宝行为。
阅读全文