inEdit 的设计方法--整体结构

inEdit是一款基于JavaScript的WYSIWYG编辑器,采用扩展方式实现面向对象编程。设计中包含inCore、inQueue和inI18N等多个模块,支持多实例编辑,并通过简化事件处理提高效率。

我们知道 OOP 的编程方法是为多数开发者喜欢的.javascript 作为 OO 的语言也具有对 OOP 的支持,

但是 javascript 不同于其他的语言,javascript 里并没有 class 的概念.

我认为 javascript 在 OOP 实现上其实都是扩展的方法,因此在设计 inEdit 的时候我决定完全用扩展的方法来进行设计.因此在 inEdit 里是见不到 prototype 原型定义这种方法的,了解 inEdit 的设计方法对使用和扩展 inEdit 是很必要的.

为完成这个目标,首先我设计了

  1. inMixin :混入对象,其实就是其他库里面常见的 extent 了,不过由于实现不同,就起了一个新的名字
  2. inCore :提供了 javascript 编程里面常用的函数支持,比如字符串trim,数组/对象的遍历,ElementNode的遍历/style设置/属性设置等
  3. inQueue :队列,我认为队列是一组顺序执行的function,因此Event也属于队列的一种,所以在设计inQueue时,把Event的处理也包括进来,对于命令式的function队列虽然也实现了,可我自己都不知道什么时候用,所以目前仅仅在理论上存在这种需求.


另外对于WYSIWYG编辑器来说,国际化支持是很必要的,因此设计了inI18N,

inEdit 就是在inCore,inQueue的基础上扩展而来的.对inI18N来说扩展这个词不合适,用inEdit 混入了 inI18N比较合适,看了代码也许大家就明白我为什么这么说了,但这样说却不会有错误:

inEdit 混入了 inCore,inQueue, inI18N.

因为对于 javascript 编程来说Mixin混入的概念仍然不确定,我这样用了当然可以用自己的理解来定义这个词.并且从词义上这种说法也可以通过.

要全面介绍这几个对象的实现还不如直接看源代码,源代码里多数函数都做了注释.
这里仅仅介绍 inEdit 在结构上的设计.

inEdit 认为:

  1. 多数情况下在一个页面上不管有多少需要 WYSIWYG编辑的元素,仅仅需要一个编辑面板就够了,当然如果需要多个面板 inEdit 也是支持的.也就是说 inEdit 支持所谓的多实例 编辑.
  2. 一个编辑器在视觉上仅仅需要三部分组成,面板(panel),弹出层(modalPanel),实例(Instance,当然可以有多个).而inEdit在设计 modalPanel 时把它作为 panel 的子节点设计了,原因很简单某一时刻只可能有一个点击行为,不管你点的按钮在 panel 上还是 modalPanel 上,因此 modalPanel 仅仅是 panel 中的一个特殊的可以隐藏或显示的按钮组罢了.
  3. 经过上面的阐述该说说事件的处理了,常见的编辑器为不同的点击命令( 触发 Element)增加了各自的 Event , inEdit 事实上把所有的触发 Element 都置于 panel 下,那其实只需要对 panel 加一个 click Event,然后通过分析触发事件的 target||srcElement 就可以了, inEdit 正是把参数以 inEditButton 对象附加到这些Element 或其 parentNode 上来完成整个 触发事件的分发
  4. 上面说的是事件,具体到 inEdit 对象上其实具体体现到成员函数上了, inEditButton对象中有 command 属性,inEdit 首先判断有没有与 command 同名的成员函数有的话,就调用,没有的话就当作 document.execCommand 的命令转发出去了.
  5. 因此 inEdit 的结构是平板式的,函数就是 inEditButton 中的command 属性,inEditButton 附身于 panel (modalPanel),inEdit 监听panel的chick事件,捕获后通过分析 target||srcElement 的 inEditButton 属性来传递命令,所有的逻辑就是这么简单.

 

 

内容概要:本文介绍了一种基于带通滤波后倒谱预白化技术的轴承故障检测方法,特别适用于变速工况下故障特征提取困难的问题。该方法通过对振动信号进行带通滤波,抑制噪声干扰,再利用倒谱预白化消除调制效应,提升周期性冲击特征的可辨识度,最后通过平方包络谱分析有效识别轴承故障频率。文中提供了完整的Matlab代码实现,便于读者复现算法并应用于实际故障诊断场景。该技术对于早期微弱故障信号的检测具有较强敏感性,能够显著提高变速条件下轴承故障诊断的准确性。; 适合人群:具备一定信号处理基础,从事机械故障诊断、工业设备状态监测等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①解决变速工况下传统包络谱分析易受频率混叠和噪声干扰导致故障特征难以识别的问题;②实现对轴承早期故障微弱冲击信号的有效提取与增强;③为旋转机【轴承故障检测】【借助倒谱预白化技术在变速条件下诊断轴承故障的应用】带通滤波后的倒谱预白化的平方包络谱用于轴承故障检测(Matlab代码实现)械的智能运维与预测性维护提供技术支持。; 阅读建议:建议结合Matlab代码逐行理解算法流程,重点关注带通滤波器设计、倒谱预白化处理步骤及平方包络谱的生成过程,同时推荐使用公开数据集(如CWRU)进行验证与对比实验,以深入掌握方法优势与适用边界。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值