zoukankan      html  css  js  c++  java
  • 什么是Mixin

    mixin实际是mix in这个短语,即混入的意思。在网上一通百度,感觉下面一些话说得挺在理:

    • mixin 其实就是在语言不提供标准多重继承的情况下,变相实现多重继承的一个语法糖。 不同版本的 mixin 实现不太一样,但出发点都是在允许继承接口和继承实现的基础上,简化继承关系,避免多重继承的坑。
    • Mixin是一种特殊的多重继承,也就是多重继承的子集。使用Mixin的好处是,同时享有单一继承的单纯性和多重继承的共有性。
    • 作为Mixin类,需要满足以下条件:
      不能单独生成实例对象,属于抽象类。
      不能继承Mixin以外的类。
      因为有以上限制,Mixin类通常作为功能模块使用,在需要该功能时“混入”,而且不会使类的关系变得复杂(比如,同名方法到底从哪个父类继承)。

    • Mixin 实质上是利用语言特性来更简洁地实现组合模式。

    看了以上这些话,结合个人理解Mixin的概念其实挺简单,它本质上就是一种编程模式,当我们需要完成一些特定功能的时候,发现这些功能通过继承一些类或者组合一些类,通过各种机制把这些类中的功能进行混合加工。然后就能够完成特定的功能。把这样的封装以Mixin类的方式对外暴露,这时就可以引入这样一种 “混入”的编程思想,它的名字就叫Mixin。

    下面是一些参考链接:

    https://www.zhihu.com/question/20778853
    https://www.cnblogs.com/xybaby/p/6484262.html
    https://www.zybang.com/question/06c0c51f4a2984bb909102b17980362c.html
    https://www.jb51.net/article/130371.htm
    http://www.php.cn/python-tutorials-88720.html

  • 相关阅读:
    day54
    day53
    CAS客户端整合(四)-- Cacti
    不重新编译安装php模块的方法
    CAS客户端整合(三) Otrs
    CAS客户端整合(二) Zabbix
    CAS客户端整合(一) Discuz!
    [Django笔记] Apache + mod-wsgi 环境部署所遇到的各种问题总结
    Baidu
    Scrapy框架初探
  • 原文地址:https://www.cnblogs.com/hzhuxin/p/9340917.html
Copyright © 2011-2022 走看看