python 设计模式之策略模式

Posted baxianhua

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 设计模式之策略模式相关的知识,希望对你有一定的参考价值。

策略模式的定义:

1、策略模式定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。

通俗的讲,也就是将那些使用的方法风别封装成独立的类,然后将这一类使用接口统一管理起来,让需要使用这些方法的用户能够随时调用他们。

 

 

 

策略模式的结构

技术图片

 

 

 策略模式的使用场景

  • 如果在一个系统里面有许多类,它们之间的区别仅在于它们的行为,那么使用策略模式可以动态地让一个对象在许多行为中选择一种行为。
  • 一个系统需要动态地在几种算法中选择一种。

 

 

 策略模式的缺点

1、客户端必须知道所有的策略类,并自行决定使用哪一个策略类。这就意味着客户端必须理解这些算法的区别,以便适时选择恰当的算法类。换言之,策略模式只适用于客户端知道算法或行为的情况。

2、由于策略模式把每个具体的策略实现都单独封装成为类,如果备选的策略很多的话,那么这些类的数目就非常多了。

 

 

参考

https://segmentfault.com/a/1190000011918366

https://www.jianshu.com/p/c59d75de1c54

https://www.cnblogs.com/whgk/p/6087064.html

 

以上是关于python 设计模式之策略模式的主要内容,如果未能解决你的问题,请参考以下文章

《设计模式之禅》之策略模式

设计模式之 策略模式

设计模式之策略模式

《JAVA与模式》之策略模式

设计模式之策略模式

设计模式之-策略模式