python版本的策略模式
策略提供一种用多个行为中的一个行为来配置一个类的方法。其实就是应用于同一个问题的不同解决方案
# -*- 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版本的策略模式相关推荐
- python策略模式包含角色_详解Python设计模式之策略模式
虽然设计模式与语言无关,但这并不意味着每一个模式都能在每一门语言中使用.<设计模式:可复用面向对象软件的基础>一书中有 23 个模式,其中有 16 个在动态语言中"不见了,或者简 ...
- JavaScript版本的策略模式
俗话说,条条大路通罗马.在美剧<越狱>中,主角Michael Scofield就设计了两条越狱的道路.这两条道路都可以到达靠近监狱外墙的医务室. 同样,在现实中,很多时候也有多种途径到达同 ...
- python策略模式_设计模式(python实现):策略模式
策略模式简单说和小时候我们玩的玩具差不多,一堆零部件通过不同的拼凑构成几个不同的机器人. 1.举个栗子 我们买了一个机器人,同时这个机器人配了三把武器,三把武器可以替换使用 2.Show in Cod ...
- python商品打折问题_Python中的策略模式-电商大促销
前言 设计模式是我们实际应用开发中必不可缺的,对设计模式的理解有助于我们写出可读性和扩展更高的应用程序.虽然设计模式与语言无关,但并不意味着每一个模式都能在任何语言中使用,所以有必要去针对语言的特性去 ...
- 策略模式、上下文与内部类的思考
2019独角兽企业重金招聘Python工程师标准>>> 策略模式简介 策略模式一直程序开发中,最常用的模式之一:它的功能就是定义了一系列的算法,这些算法定义着公共的接口,所以它们之间 ...
- [设计模式] javascript 之 策略模式
策略模式说明 定义: 封装一系列的算法,使得他们之间可以相互替换,本模式使用算法独立于使用它的客户的变化. 说明:策略模式,是一种组织算法的模式,核心不在于算法,而在于组织一系列的算法,并且如何去使用 ...
- Python设计模式-策略模式
Python设计模式-策略模式 代码基于3.5.2,代码如下; #coding:utf-8 #策略模式class sendInterface():def send(self,value):raise ...
- python策略模式的应用_Head First 设计模式——策略模式(Strategy Pattern)——Python实现 | 学步园...
作者:liuyuan_jq 2011-06-13 策略模式定义 定义了 问题 J o e 上班的公司做了一套相当成功的模拟鸭子游戏: SimUDuck.游戏中会出现各种鸭子,一边游泳戏水,一边呱 呱叫 ...
- 用python重构策略模式
资料来源:<流畅的Python> 案例分析:重构"策略"模式 <设计模式:可复用面向对象软件的基础>一书是这样概述"策略"模式的: 定义 ...
最新文章
- c语言作业扩展名通常为什么,C语言的源程序通常的扩展名是( )
- npm更新模块并同步到package.json中
- xarray 笔记:DataArray
- numpy.newaxis详解
- 浅谈python函数签名
- 带你走进rsync的世界
- python 基础及资料汇总
- 基础知识巩固五(问题)
- DBeaver执行SQL脚本文件
- java毕业设计医院各科室财务管理2021Mybatis+系统+数据库+调试部署
- 下行法求最小割集案例_最小割集求法.docx
- 协调才暴力-精英乒乓论坛
- 学习Nginx这一篇就够了(非本人原创文章)
- Arduino与JavaScript开发实例-舵机驱动
- 微信小程序十二时辰时钟
- 【新知实验室】快速实现视频应用
- (一)关于POE供电定义以及级别划分,如何测试网线是否满足相关标准?
- python学习之os模块
- StringUtils.hasText()的理解和作用
- 千亿电子签赛道,谁是中国版DocuSign?
热门文章
- C语言的补码表示和unsigned及signed的转换
- 记Git报错-refusing to merge unrelated histories
- Python进程学习笔记-进程创建fork
- 高并发第八弹:J.U.C起航(java.util.concurrent)
- 作业二/Git的安装以及使用
- ReactiveCocoa源码解读(二)
- 博客项目之设计访客统计
- LockBits in GDI+【转】http://timothyqiu.com/archives/lockbits-in-gdiplus/
- JavaScript 学习笔记 之事件
- HTML 标签自定义属性