设计模式——访问者模式 Visitor模式允许我们在不改动原有结构的基础之上不断增加新的功能。 ICumulation接口定义了方法Cumulate(),旨在计算1+2+……+n,有两种不同的实现方法,一个是一般的叠加算法GeneralArithmetic,一个是高斯算法GaoSiArithmetic。 因为某种原因,系统需要添加求平均值的功能,还有计算1到n的平方和。 按照一般的思路,我们需要在ICumulation中定义两个方法分别计算平均值和平方和,并在实现类中同时添加相应的方法。在搭建了visitor模式的架构以后,添加功能的代码被移植到ICumulationVisitor中,添加的两种功能也分别被以子类AverageVisitor和PowerVisitor实现。 功能的扩展从在类中添加方法的方式变成了添加新类的方式,该类继承一定的Visitor接口。这是一个90度的转换,使得架构符合开放封闭(OCP)原则:功能的扩展无需改动原有代码。 同时,这里也体现了单一职责原则(SRP),ICumulation层次结构可以因为出现了不同的算法而改变,但是不应该因为需要计算不同的东西(功能)而改变,算法和功能是横向和纵向的关系。这里visitor模式隔离了算法和功能,ICumulation层次结构负责算法,ICumulationVisitor层次结构负责功能。
标签: ICumulation Cumulate Visitor 模式
上传时间: 2015-06-12
上传用户:上善若水
基于WINCE,EVC开发,可以将LCD屏幕旋转90度,180度,270度,满足不同方向观看LCD画面的需求,
标签: WINCE
上传时间: 2015-08-27
上传用户:zhuimenghuadie
c8051f005读取SCA100T之程序,SCA100T仍是VI出的一款角度传感器,测量范围为+90~-90度
上传时间: 2013-12-17
上传用户:gmh1314
编写程序,首先建立如下图所示的带头结点的二叉链存储结构二叉树,然后把二叉树顺时针旋转90度后在屏幕上打印该二叉树,然后输出分别按照前序遍历(含递归与非递归两种方法),中序遍历,后序遍历以及层次遍历等方法遍历二叉树次序访问各结点的序列信息,并验证结果正确与否,并实现在该二叉树中查找某结点数据的方法。
上传时间: 2017-01-07
上传用户:sxdtlqqjl
基于状态图的光电编码器4倍频vhdl程序,输入相位差90度的两相,输出倍频和方向信号
上传时间: 2013-12-13
上传用户:aa17807091
android视频录制,模仿微视,支持按下录制、抬起暂停。进度条断点显示。 该源码解决以下问题: 1.如何获取摄像头的数据 2.如何把获取到的数据保存到视频文件中 3.如何录制音频,并和视频合并 4.录制视频时如何实现暂停功能 5.android摄像头支持的分辨率可能不符合需求,需要转换分辨率 6.android手机录制出来的视频是旋转了90度的,如何实现旋转(转换到前置摄像头又如何处理)
标签: RecordVideoDemo
上传时间: 2016-06-23
上传用户:vsxgvdzsh
连接器规格图连接器规格图资料中包含板对板排针排母 插座 WAFER 简牛 插针 PIN针 弯针等明细规格书资料
标签: 连接器图纸 连接器规格书 连接器技术 板对板连接器 排针排母连接器 PIN针连接器 弯针连接器 简牛连接器 连接器方案 排针排母 连接器规格 连接器设计 牛角连接器 连接器
上传时间: 2016-08-04
上传用户:sztfjm
ZCORE系列NBIOT开发底板资料开源。 NBIOT开发板主要接口: Micro USB *1 3.7V电池充电电路 庆科WIFI模块支持 贴片SIM卡支持 STM32L433全部外围接口已拉出为2.0排针
上传时间: 2018-04-25
上传用户:pshr960405
AT89S52-24单片机最小系统开发板ALTIUM设计硬件原理图+PCB文件,2层板设计,大小为121x149mm,Altium Designer 设计的工程文件,包括完整的原理图及PCB文件,可以用Altium(AD)软件打开或修改,可作为你的产品设计的参考。主要器件型号列表如下:Library Component Count : 14Name Description----------------------------------------------------------------------------------------------------AT89S52-P 8 位微处理器/40引脚CAP CapacitorCAPACITOR POL CapacitorCRYSTAL CrystalD Connector 9 Receptacle Assembly, 9 Position, Right AngleHeader 2 Header, 2-PinHeader 4 Header, 4-PinHeader 5X2 Header, 5-Pin, Dual rowLED MAX232PZ_9 排针——9RES2SW-DPST Double-Pole, Single-Throw SwitchSW-PB Switch
上传时间: 2021-11-17
上传用户:
AT89S52单片机主8入8出继电器工控主板ALTIUM设计硬件原理图+PCB文件,2层板设计,大小为121x149mm,Altium Designer 设计的工程文件,包括完整的原理图及PCB文件,可以用Altium(AD)软件打开或修改,可作为你的产品设计的参考。主要器件型号列表如下:Library Component Count : 25Name Description----------------------------------------------------------------------------------------------------24LC02AJKG 按键开关AT89S52-P 8 位微处理器/40引脚CAP CapacitorCAPACITOR POL CapacitorCPDR 瓷片电容CRYSTAL CrystalD Connector 9 Receptacle Assembly, 9 Position, Right AngleDG 电感DJDR 电解电容GO 光耦Header 5X2 Header, 5-Pin, Dual rowJDQYCK 继电器——1常开1常闭LED 发光二极管LM2576HVT-3.3 Simple Switcher 3A Step Down Voltage RegulatorMAX232 NPN NPN Bipolar TransistorPZ_2 排针——2PZ_3 排针——3RES2Res 电阻Res PZ_8 8位排阻SW-DPST Double-Pole, Single-Throw SwitchWY2JG 稳压二级管ZL2JG 整流二极管
上传时间: 2021-11-17
上传用户:kingwide