首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

常用设计模式——桥接模式

在正式介绍桥接模式之前,我先跟大家谈谈两种常见文具的区别,它们是毛笔和蜡笔。假如我们需要大中小3种型号的画笔,能够绘制12种不同的颜色,如果使用蜡笔,需要准备3×12 = 36支,但如果使用毛笔的话,只需要提供3种型号的毛笔,外加12个颜料盒即可,涉及到的对象个数仅为 3 + 12 = 15,远小于36,却能实现与36支蜡笔同样的功能。如果增加一种新型号的画笔,并且也需要具有12种颜色,对应的蜡笔需增加12支,而毛笔只需增加一支。为什么会这样呢?通过分析我们可以得知:在蜡笔中,颜色和型号两个不同的变化维度(即两个不同的变化原因)融合在一起,无论是对颜色进行扩展还是对型号进行扩展都势必会影响另一个维度;但在毛笔中,颜色和型号实现了分离,增加新的颜色或者型号对另一方都没有任何影响。如果使用软件工程中的术语,我们可以认为在蜡笔中颜色和型号之间存在较强的耦合性,而毛笔很好地将二者解耦,使用起来非常灵活,扩展也更为方便。在软件开发中,我们也提供了一种设计模式来处理与画笔类似的具有多变化维度的情况,即本章将要介绍的桥接模式。

02

Excel表格中最经典的36个小技巧,全在这儿了

技巧1、单元格内强制换行 技巧2、锁定标题行 技巧3、打印标题行 技巧4、查找重复值 技巧5、删除重复值 技巧6、快速输入对号√ 技巧7、万元显示 技巧8、隐藏0值 技巧9、隐藏单元格所有值。 技巧10、单元格中输入00001 技巧11、按月填充日期 技巧12、合并多个单元格内容 技巧13、防止重复录入 技巧14、公式转数值 技巧15、小数变整数 技巧16、快速插入多行 技巧17、两列互换 技巧18、批量设置求和公式 技巧19、同时查看一个excel文件的两个工作表。 技巧20:同时修改多个工作表 技巧21:恢复未保存文件 技巧22、给excel文件添加打开密码 技巧23、快速关闭所有excel文件 技巧24、制作下拉菜单 技巧25、二级联动下拉 技巧27、删除空白行 技巧28、表格只能填写不能修改 技巧29、文字跨列居中显示 技巧30、批注添加图片 技巧31、批量隐藏和显示批注 技巧32、解决数字不能求和 技巧33、隔行插入空行 技巧34、快速调整最适合列宽 技巧35、快速复制公式 技巧36、合并单元格筛选

02

一起学习设计模式--08.桥接模式

现实生活中我们经常会遇到两种类型的笔,他们分别是毛笔和蜡笔。假设需要使用大、中、小3种型号的画笔来绘制12种不同的颜色。如果使用蜡笔,需要3 X 12 = 36 支。但是如果是毛笔的话,就不一样了,我们只需要3种型号的毛笔,和12盒颜料即可,涉及的对象个数仅为 3 + 12 = 15,要远远小于36,但是却可以实现与36种蜡笔一样的效果。如果要增加一种新型号的画笔,并且也需要12种颜色,相应的蜡笔需要增加12支,但是毛笔只需要增加一支即可。通过分析得知:在蜡笔中,颜色和型号两个不同的变化维度耦合在一起,无论是对颜色进行扩展,还是对型号进行扩展,都会对另一种维度产生影响。但在毛笔中,颜色和型号进行了分离,增加新的颜色或型号对另一方都没有任何影响。如果使用软件工程中的术语,可以认为,在蜡笔中颜色和型号之间存在较强的耦合性,而毛笔很好的将二者解耦,使用起来非常灵活,扩展也更为方便。在软件开发中,也提供了一种设计模式来处理与画笔类似的具有多变化维度的情况,即接下来要学习的桥接模式。

01

Python让Excel飞起来—批量进行数据分析

corr()函数默认计算的是两个变量之间的皮尔逊相关系数。该系数用于描述两个变量间线性相关性的强弱,取值范围为[-1,1]。系数为正值表示存在正相关性,为负值表示存在负相关性,为0表示不存在线性相关性。系数的绝对值越大,说明相关性越强。- 上表中第1行第2列的数值0.982321,表示的就是年销售额与年广告费投入额的皮尔逊相关系数,其余单元格中数值的含义依此类推。需要说明的是,上表中从左上角至右下角的对角线上的数值都为1,这个1其实没有什么实际意义,因为它表示的是变量自身与自身的皮尔逊相关系数,自然是1。- 从上表可以看到,年销售额与年广告费投入额、成本费用之间的皮尔逊相关系数均接近1,而与管理费用之间的皮尔逊相关系数接近0,说明年销售额与年广告费投入额、成本费用之间均存在较强的线性正相关性,而与管理费用之间基本不存在线性相关性。前面通过直接观察法得出的结论是比较准确的。- 第2行代码中的read_excel()是pandas模块中的函数,用于读取工作簿数据。3.5.2节曾简单介绍过这个函数,这里再详细介绍一下它的语法格式和常用参数的含义。- read_excel(io,sheet_name=0,header=0,names=None,index_col=None,usecols=None,squeeze=False,dtype=None)

03

rtp载荷类型_架体荷载

大家好,又见面了,我是你们的朋友全栈君。 1简介 在Internet上用分组传送话音的质量不够好的一个重要原因是比较高的丢包率。尤其在 广域网中,这个问题相当突出。不幸的是,实时多媒体业务对于延时的要求相当严格,因此 不大可能通过重传来解决丢包的问题。 正是出于这个原因,大家提出用前向纠错(FEC)来解决Internet上的丢包问题[1][2]。 尤其是对于传统纠错码如校验码、RS码、汉明码等的使用引起了很多人的注意。为了能够更 好地应用这些纠错码,必须有相关的 协议来支持。 本文档定义了一种RTP的荷载格式,允许对于实时媒体流进行一般性的前向纠错。在这 里“一般性”指的是(1)与被保护的媒体类型无关,即音频、视频或其它;(2)足够灵活, 能够支持多种FEC机制;(3)自适应性,可以方便的修改FEC方案而不需要带外的信令支持; (4)支持若干种不同的FEC包的传输机制。 2术语 本文档中使用了下面这些术语: 媒体荷载:一段待传输的未加保护的用户数据。媒体荷载放在一个RTP包的内部。 媒体头:包含媒体荷载的包的RTP头 媒体包:媒体荷载与媒体头合起来称作媒体包 FEC包:发送端将媒体包作为前向纠错算法的输入,输出除了这些媒体包之外,还有一些 新的数据包称作FEC包。FEC包的格式在本文档中进行说明。 FEC头:FEC包的头信息称作FEC头。 FEC荷载:FEC荷载是FEC包中的荷载。 关联的:一个FEC包称作与一个或几个媒体包是关联的,如果在这个FEC包的产生过程 中这几个媒体包用作EC算法的输入 关键词“必须”,“必须不”,“要求的”,“会“,”不会“,“应该”,“不应该”, “建议的”,“或许”,“可选的”在 RFC2119[4]中解释。 3基本操作 这里描述的荷载格式用于一个RTP会话中的某一端想要用FEC来保护它所传送的媒体数 据流的情况。这种格式所支持的FEC是基于简单异或校验的纠错算法。发送端从媒体数据流 中取出若干个包,并对它们整个施以异或操作,包括RTP头。基于这样一个过程,可以得到 一个包含FEC信息的RTP包。这个包可以被接收端用来恢复任何一个用来产生它的包。本文 档中并未规定多少个媒体包合起来产生一个FEC包。不同参数的选取会导致在overhead,延 时和恢复能力之间的一个不同的折中方案。第4节给出了一些可能的组合。 发送端需要告诉接收端哪些媒体包被用来产生了一个FEC包,这些信息都包含在荷载信 息中。每个FEC包中包含一个24比特的mask,如果mask的第i个比特为1,序号为N+i 的媒体包就参与了这个FEC包的生成。N称作基序号,也在FEC包中传送。通过这样一种方 案就可以以相当小的overhead来用任意的FEC纠错方案恢复丢失的数据包。 本文档也描述了如何使接收端在不了解具体纠错码细节的情况下利用FEC的方法。这就 给了发送端更大的灵活性,它可以根据网络状态而自适应选择纠错码,而接收端仍能够正确 解码并用于恢复丢失的包。 发送端生成FEC包之后,就把它们发给接收端,同时,发送端也照常发送原来的媒体数 据包,就好像没有FEC一样。这样对于没有FEC解码能力的接收端,媒体流也照常可以接收 并解码。然而,对于某些纠错码来说,原始的媒体数据包是不需要传输的,仅靠FEC包就足 以恢复丢失的包了。这类码就具有一个很大的缺点,就是要求所有的接收者都具有FEC解码 能力。这类码在本文档中也是支持的。 FEC包并不与媒体包在同一个RTP流中传输,而是在一个独立的流中传输,或者作为冗 余编码(redundantencoding)中的次编码(secondaryencoding)来传输[5]。当在另一个 流中传输时,FEC包有它们自己的序号空间。FEC包的时间戳是从对应的媒体包中得来的,同 样是单调递增。因此,这样的FEC包可以很好地应用于任何具有固定差值的包头压缩方案。 本文并没有规定何为“一个独立的流”,而把它留给上层 协议和具体应用去定义。对于 多播的情况,“一个独立的流”可以通过不同的多播组来实现,或者同一个组的不同端口, 或者同样的组和端口中不同的SSRC。对于单播的情况,可以使用不同的端口或者不同的SSRC。 这些方法都各有其优缺点,选用哪一种取决于具体的应用。 接收端收到FEC包和媒体包之后,先判断是否有媒体包丢失。如果没有,FEC包就直接 被丢弃。如果有丢包,就使用接收到的FEC包和媒体包来进行丢包的重建。这样一个重建过 程是很精确的,荷载以及包头的大部分数据都可以完全恢复出来。 按照本 协议来进行打包的RTP包可以使用一个动态RTP荷载类型号来通知接收端。 4监督码 我们定义f(x,y,..)为数据包x,y,…等的异或,这个函数的输出也是一个数据包,称作 监督包。为简单起见,我们

02
领券