位置: 编程技术 - 正文

详解Python设计模式编程中观察者模式与策略模式的运用(python 设计)

编辑:rootadmin

推荐整理分享详解Python设计模式编程中观察者模式与策略模式的运用(python 设计),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python设计内容,python设计模型,python设计gui,python设计模型,python设计程序教程,python设计作品,python设计模型,python 设计,内容如对您有帮助,希望把文章链接给更多的朋友!

观察者模式

观察者模式:又叫发布订阅模式,定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象的状态发生变化时,会通知所有观察者对象,是他们能自动更新自己。

代码结构

众多MQ中间件都是采用这种模式的思想来实现的。

观察者模式可以让主题和观察者之间解耦,互相之间尽可能少的依赖。不过抽象主题和抽象观察者之间还是有耦合的。

策略模式策略模式: 定义了算法家族,分别封装起来,让他们之间可以互相替换。此模式让算法的变化不影响使用算法的客户。

代码框架

详解Python设计模式编程中观察者模式与策略模式的运用(python 设计)

策略模式解决那类问题

在回答这个问题之前,先说下对策略模式的使用方式的感觉。上面的client函数,怎么看起来就像是简单工厂模式中的工厂函数呢?确实如此,实际上策略模式可以和简工厂模式结合起来,将更多细节封装在策略模式内部,让使用者更容易的使用。

那么策略模式和简单工厂模式有什么不同呢?策略模式中的算法是用来解决同一个问题的,根据时间、条件不同,算法的具体细节有差异,但最终解决的是同一个问题。在需求分析过程中,当听到需要在不同时间应用不同的业务规则,就可以考虑使用策略模式来处理这种变化的可能性。

缺点

使用者需要知道每一种策略的具体含义,并负责选择策略改进

结合简单工厂模式,将策略选择封装在Context内部,解放client:

改进后的遗留问题

每次需要增加新的策略时,就需要修改Context的构造函数,增加一个新的判断分支。

Python使用设计模式中的责任链模式与迭代器模式的示例 责任链模式责任链模式:将能处理请求的对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理请求为止,避免请求的发送者和接收者之间

Python设计模式中单例模式的实现及在Tornado中的应用 单例模式的实现方式将类实例绑定到类变量上classSingleton(object):_instance=Nonedef__new__(cls,*args):ifnotisinstance(cls._instance,cls):cls._instance=super(Singleton,cls).__new__(cls

python套接字流重定向实例汇总 将套接字流重定向到标准输入或输出流#!/usr/bin/envpython3"""测试socket-stream重定向模式"""importsys,os,timefrommultiprocessingimportProcessfromsocketimport*definitListenerSocket(

标签: python 设计

本文链接地址:https://www.jiuchutong.com/biancheng/383372.html 转载请保留说明!

上一篇:Python设计模式编程中解释器模式的简单程序示例分享(python设计程序)

下一篇:Python使用设计模式中的责任链模式与迭代器模式的示例(python设计作品)

  • 调整税率后增值税发票的开具
  • 利息收入纳税义务时点
  • 机票和发票是一样的吗
  • 工程施工与工程结算在资产负债表里
  • 增值税发票丢失可以用复印件入账么
  • 金蝶软件数量金额式怎样输入数据
  • 合并报表无形资产摊销时间
  • 企业财务发工资流程
  • 增值税一般纳税人是什么意思
  • 小规模购买金税盘可以全额抵扣吗
  • 定期存款利息税是多少
  • 发票勾选平台显示不成功
  • 营改增后二手固定资产折旧纳税调整怎么做账?
  • 可供出售金融资产是指什么
  • 出租车车票能进高铁站吗
  • 补缴以前年度税款
  • 利润总额就是会计准则吗
  • 哪些人需缴纳个人所得税
  • 企业合并无形资产摊销
  • 没有收到发票的费用怎么入账
  • 哪些收入要纳税
  • 收到预付款怎么给客户写协议书
  • 用人单位发放工资时跨行手续费应由谁支付
  • 个人所得税应该计入什么科目
  • 税盘进项税额怎么做
  • Ant Design Pro(5)-7.高级表格ProTable
  • 如何申请菜鸟驿站快递代理点
  • 差旅费报销会计凭证
  • 建筑业会计需要做到哪些
  • 企业租地建厂流程
  • antd upload组件
  • 没有收入的情况下可以填成本吗
  • 进项税不得抵扣的意思
  • 详解 HttpServletResponse
  • php curl_multi_init
  • php页面跳转可以用header
  • 员工探亲证明怎么写
  • 什么情况下需要异地预缴增值税
  • 现金折扣退回要考虑财务费用吗
  • 房地产个税是什么意思
  • 社保代扣代缴的规定
  • 报账单大写金额负数填写方式
  • Sqlserver 2005使用XML一次更新多条记录的方法
  • win2008iis安装
  • mysql中如何设置默认值
  • 什么是受托支付和非受托支付
  • 购买其他权益工具投资公允大于我支付的价值
  • 负债类会计科目新增科目包括
  • 实缴税额怎么算
  • 母公司代子公司收款,子公司开具发票
  • 电子退库纳税人是什么意思
  • 购买农副产品抵扣进项税的规定
  • 人民币报关退税流程
  • 农产品收购单怎么做会计分录
  • 滞纳金的上限是多少
  • 主营业务成本可以直接贷银行存款吗
  • 一般纳税人抵扣进项税流程
  • 暂估的费用次年调增怎么做会计分录
  • 车船使用税会计分录怎么写
  • windows有哪些
  • 在windows中用户建立的文件默认具有的属性是
  • netsurf.exe - netsurf是什么进程 有什么用
  • windows累积更新失败怎么办
  • lua打印变量
  • nodejs连接达梦数据库
  • 全网最全的小说阅读器
  • shell自定义命令
  • 用原生js写项目
  • 批处理实现电脑登陆二次验证
  • vue-cli作用
  • 如何用虚拟号码打电话
  • js函数function用法
  • unity3d基础操作
  • Python的内置字典数据类型为___
  • jquery入门
  • python读写segy数据
  • 工会经费税务代收现状
  • 留抵退税再提速
  • 台资企业有什么
  • 以房产作价投资增值税怎么算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设