23种设计模式介绍(Python示例讲解)(37)

2023-04-30 来源:飞速影视
9、策略模式(Strategy)
策略模式(Strategy)是一种行为型设计模式,它允许在运行时选择算法的不同实现方式。该模式的基本思想是将算法封装在可互换的策略对象中,使得客户端能够动态地选择算法的实现方式。
实现思路:
在策略模式中,通常有一个上下文对象(Context),它持有一个或多个策略对象(Strategy),并将具体的任务委托给其中的某个策略对象来完成。策略对象之间通常是相互独立的,它们之间没有共享状态,客户端可以自由地选择不同的策略对象。
优缺点:
策略模式的优点是可以提高代码的可维护性和可扩展性,因为它将算法的实现与上下文对象分离,使得修改或增加新的算法实现变得更加容易。缺点是可能会增加类的数量,同时需要客户端显式地选择不同的策略对象,这可能会使代码变得更加复杂。
下面是一个简单的 Python 实现示例:
1、定义策略接口:
class SortStrategy: def sort(self, data): pass
2、实现具体策略类:
class QuickSort(SortStrategy): def sort(self, data): # 使用快速排序算法实现排序 passclass BubbleSort(SortStrategy): def sort(self, data): # 使用冒泡排序算法实现排序 pass
3、定义上下文类:
class SortContext: def __init__(self): self.strategy = None def set_sort_strategy(self, strategy): self.strategy = strategy def sort_data(self, data): self.strategy.sort(data)
4、客户端选择算法实现方式:
context = SortContext()data = [5, 1, 4, 2, 8]context.set_sort_strategy(QuickSort())context.sort_data(data) # 使用快速排序算法实现排序context.set_sort_strategy(BubbleSort())context.sort_data(data) # 使用冒泡排序算法实现排序
相关影视
合作伙伴
本站仅为学习交流之用,所有视频和图片均来自互联网收集而来,版权归原创者所有,本网站只提供web页面服务,并不提供资源存储,也不参与录制、上传
若本站收录的节目无意侵犯了贵司版权,请发邮件(我们会在3个工作日内删除侵权内容,谢谢。)

www.fs94.org-飞速影视 粤ICP备74369512号