策略提供一种用多个行为中的一个行为来配置一个类的方法。其实就是应用于同一个问题的不同解决方案

# -*- coding:UTF-8 -*-
import abcclass Strategy(metaclass=abc.ABCMeta):@abc.abstractmethoddef algorithm_interface(self):passclass ConcreteStrategyA(Strategy):def algorithm_interface(self):print('算法A实现')class ConcreteStrategyB(Strategy):def algorithm_interface(self):print('算法B实现')class ConcreteStrategyC(Strategy):def algorithm_interface(self):print('算法C实现')class Context:def __init__(self,strategy):self.strategy=strategydef context_interface(self):self.strategy.algorithm_interface()if __name__=="__main__":context = Context(ConcreteStrategyA())context.context_interface()context = Context(ConcreteStrategyB())context.context_interface()context = Context(ConcreteStrategyC())context.context_interface()

转载于:https://www.cnblogs.com/gjinwei/p/8351135.html

python版本的策略模式相关推荐

  1. python策略模式包含角色_详解Python设计模式之策略模式

    虽然设计模式与语言无关,但这并不意味着每一个模式都能在每一门语言中使用.<设计模式:可复用面向对象软件的基础>一书中有 23 个模式,其中有 16 个在动态语言中"不见了,或者简 ...

  2. JavaScript版本的策略模式

    俗话说,条条大路通罗马.在美剧<越狱>中,主角Michael Scofield就设计了两条越狱的道路.这两条道路都可以到达靠近监狱外墙的医务室. 同样,在现实中,很多时候也有多种途径到达同 ...

  3. python策略模式_设计模式(python实现):策略模式

    策略模式简单说和小时候我们玩的玩具差不多,一堆零部件通过不同的拼凑构成几个不同的机器人. 1.举个栗子 我们买了一个机器人,同时这个机器人配了三把武器,三把武器可以替换使用 2.Show in Cod ...

  4. python商品打折问题_Python中的策略模式-电商大促销

    前言 设计模式是我们实际应用开发中必不可缺的,对设计模式的理解有助于我们写出可读性和扩展更高的应用程序.虽然设计模式与语言无关,但并不意味着每一个模式都能在任何语言中使用,所以有必要去针对语言的特性去 ...

  5. 策略模式、上下文与内部类的思考

    2019独角兽企业重金招聘Python工程师标准>>> 策略模式简介 策略模式一直程序开发中,最常用的模式之一:它的功能就是定义了一系列的算法,这些算法定义着公共的接口,所以它们之间 ...

  6. [设计模式] javascript 之 策略模式

    策略模式说明 定义: 封装一系列的算法,使得他们之间可以相互替换,本模式使用算法独立于使用它的客户的变化. 说明:策略模式,是一种组织算法的模式,核心不在于算法,而在于组织一系列的算法,并且如何去使用 ...

  7. Python设计模式-策略模式

    Python设计模式-策略模式 代码基于3.5.2,代码如下; #coding:utf-8 #策略模式class sendInterface():def send(self,value):raise ...

  8. python策略模式的应用_Head First 设计模式——策略模式(Strategy Pattern)——Python实现 | 学步园...

    作者:liuyuan_jq 2011-06-13 策略模式定义 定义了 问题 J o e 上班的公司做了一套相当成功的模拟鸭子游戏: SimUDuck.游戏中会出现各种鸭子,一边游泳戏水,一边呱 呱叫 ...

  9. 用python重构策略模式

    资料来源:<流畅的Python> 案例分析:重构"策略"模式 <设计模式:可复用面向对象软件的基础>一书是这样概述"策略"模式的: 定义 ...

最新文章

  1. c语言作业扩展名通常为什么,C语言的源程序通常的扩展名是( )
  2. npm更新模块并同步到package.json中
  3. xarray 笔记:DataArray
  4. numpy.newaxis详解
  5. 浅谈python函数签名
  6. 带你走进rsync的世界
  7. python 基础及资料汇总
  8. 基础知识巩固五(问题)
  9. DBeaver执行SQL脚本文件
  10. java毕业设计医院各科室财务管理2021Mybatis+系统+数据库+调试部署
  11. 下行法求最小割集案例_最小割集求法.docx
  12. 协调才暴力-精英乒乓论坛
  13. 学习Nginx这一篇就够了(非本人原创文章)
  14. Arduino与JavaScript开发实例-舵机驱动
  15. 微信小程序十二时辰时钟
  16. 【新知实验室】快速实现视频应用
  17. (一)关于POE供电定义以及级别划分,如何测试网线是否满足相关标准?
  18. python学习之os模块
  19. StringUtils.hasText()的理解和作用
  20. 千亿电子签赛道,谁是中国版DocuSign?

热门文章

  1. C语言的补码表示和unsigned及signed的转换
  2. 记Git报错-refusing to merge unrelated histories
  3. Python进程学习笔记-进程创建fork
  4. 高并发第八弹:J.U.C起航(java.util.concurrent)
  5. 作业二/Git的安装以及使用
  6. ReactiveCocoa源码解读(二)
  7. 博客项目之设计访客统计
  8. LockBits in GDI+【转】http://timothyqiu.com/archives/lockbits-in-gdiplus/
  9. JavaScript 学习笔记 之事件
  10. HTML 标签自定义属性