zoukankan      html  css  js  c++  java
  • 扩展或插件 (Extension or Plugin )

    Manual:Component:扩展或插件 zh-CN

    From Learn About the Ext JavaScript Library

    Jump to: navigation, search
    Summary: 辨析Ext Extensions(扩展)与Plugins(插件)之间的关系。
    Author: Jozef Sakalos, aka Saki (译者:Frank Cheung
    Published: 2008五月二号
    Ext Version: 2.x
    Languages: en.png Englishcn.png Chinese

    Contents

    [hide]

    序言

    要是在Ext框架中没有相应的功能,我想许多用户都会自己写一套程序去实现。有一些功能是根据他们的程序而开发的,有些则是通用的,这样其他用户可能就会对此感兴趣。

    嗯~我们有了想法了,是需要写一写新的代码,相关的步骤我也懂得,可能面临一个问题,究竟是写扩展(Extension)还是写插件(Plugin)呢?

    扩展与插件

    我们把两样东西放在一起讨论,可以明确它们之间是有某种很相似的地方。相似的地方在于,它们都是对现有的库的功能进行 修改 加入新的功能。

    扩展与插件均不能独立使用;它们须依赖组件、类运行。

    扩展

    扩展(extension)在Ext中就是指衍生的子类。假设我们已经有一个附有一些方法的基类,现在欲加入新方法。我们可以框架的继承特性和JavaScript创建新类的语言特性组合新的一个类,包含基类的方法和加入的新方法。

    我们这里进行Ext类的扩展。 首先执行函数Ext.extend返回一个新的类,这个类的名称就是新的变量名。 像下例:

    MyExtension = Ext.extend(Ext.Panel, {/* 对象的新属性、新方法 */});

    接着,我们需要实例化对象:

    var myExtension = new MyExtension({/* 可选的配置项 */});

    插件

    插件不需要从任何Ext类为基础。尽管插件很多时候从Ext.util.Observable哪里扩展,但这不是必须的; 插件其实是可以很灵活的。如果这个插件是为某个组件服务的,就当然没有必要从现有的Ext类:panel,form,grid...写起。

    举一个例子,说明如何创建插件:

    MyPlugin = function() {/* 代码 */};

    然后这样子使用:

    var myPanel = new Ext.Panel({
         plugins:[new MyPlugin({/* 可选的配置项 */})]
        ,// 其他myPanel的配置项
    });

    扩展还是插件?

    这要看... 无论写扩展还是写插件都可以达到相同的效果。有的程序员就喜欢写插件,有的喜欢写扩展。总得来说,小一点的功能写成插件,复杂一点的可以写成扩展。插件可以轻松地从组件上移除,扩展就和程序联系很紧密。

    总结

    • 一个扩展就是一个新名字出现的一个类,它是以某个基类为基础,属于类库中的一员。扩展必须好像其他类那样实例化般地使用。
    • 插件会把插入到现有的某个类之中,可灵活地移除,它可以在类库中定义,然后伴随某个类实例化的时候参与运作。

    延伸阅读

  • 相关阅读:
    多表代换密码
    仿射变换
    LeetCode实战练习题目
    13.线性同余方程 扩展欧几里得算法
    12.扩展欧几里得算法
    11.快速幂求逆元
    10.快速幂
    9.筛法求欧拉函数
    8.欧拉函数
    7.最大公约数 欧几里得算法,也叫辗转相除法
  • 原文地址:https://www.cnblogs.com/meetrice/p/1206323.html
Copyright © 2011-2022 走看看