zoukankan      html  css  js  c++  java
  • 『ExtJS』01 003. ExtJS 4 类的混合

    ExtJS 4 中,可以在一个类里面包含另一个类,并合并它们的成员(包括方法与属性)。 使用这一个特性,我们可以对一些细小且经常被使用的方法进行打包,然后合并它们到各个需要它们的类中。

    代码


    ExtJS:4.0.7

    IDE:Eclipse Java EE

    浏览器:Chrome 25

       1: //-------等待被混合的类---------------------------------
       2: Ext.define('HasCamera', {
       3:     takePhoto : function() {
       4:         alert('Say Cheese! .... Click!');
       5:     }
       6: });
       7:  
       8: //-------混合HasCamera的另一个类------------------------
       9: Ext.define('Cookbook.Smartphone', {
      10:     mixins : {
      11:         camera : 'HasCamera'
      12:     },
      13:     
      14:     useCamera:function(){
      15:         this.takePhote();    // 调用HasCamera的方法
      16:     }
      17: });
      18:  
      19: //-------实例化与调用----------------------------------
      20: var smartphone = Ext.create('Cookbook.Smartphone');
      21: smartphone.useCamera();    // Say Cheese! .... Click!

    说明


    1. 定义一个被‘混合’的类HasCamera;
    2. 定义一个类Smartphone,并使用mixins关键字混合HasCamera;
    3. 由于HasCamera已经被‘混合’到了Smartphone中,所以在Smartphone中,已经可以使用HasCamera的所有成员(包括属性)。

    总结


    ‘混合’类与继承看起来类似,但是其主要的目的有所不同。使用‘混合’类的主要目的在于复用,使用继承的目的在于实现面向对象的一些目的(比如多态)。






    版权声明:

    作者:莫不逢
    出处:http://www.cnblogs.com/sitemanager/
    Github:https://github.com/congjf

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。


  • 相关阅读:
    210
    209
    208
    207
    定时任务crontab
    Python的zip与*zip函数的应用
    Python的reduce函数与map函数
    解析:cpu与io密集在何场景适合使用多进程,多线程,协程
    Python上下文(转载)
    C10K与C10M的问题
  • 原文地址:https://www.cnblogs.com/sitemanager/p/2785064.html
Copyright © 2011-2022 走看看