zoukankan      html  css  js  c++  java
  • mixins机制

    1、多继承的正确打开方式:mixins机制
    mixins机制核心:就是在多继承背景下尽可能地提升多继承的可读性
    ps:让多继承满足人的思维习惯=》什么"是"什么

    补充:通常Mixin结果的类放在左边

    首先它必须表示某一种功能,而不是某个物品,python 对于mixin类的命名方式一般以 Mixin, able, ible 为后缀

    其次它必须责任单一,如果有多个功能,那就写多个Mixin类,一个类可以继承多个Mixin,为了保证遵循继承的“is-a”原则,只能继承一个标识其归属含义的父类

    然后,它不依赖于子类的实现

    最后,子类即便没有继承这个Mixin类,也照样可以工作,就是缺少了某个功能。(比如飞机照样可以载客,就是不能飞了)


    案例:
    Python语言可没有接口功能,但Python提供了Mixins机制,简单来说Mixins机制指的是子类混合(mixin)不同类的功能,而这些类采用统一的命名规范(例如Mixin后缀),
    以此标识这些类只是用来混合功能的,并不是用来标识子类的从属"is-a"关系的,所以Mixins机制本质仍是多继承,但同样遵守”is-a”关系,如下
    class Vehicle:
    pass

    class FlyableMixin:
    def fly(self):
    pass

    class CivilAircraft(FlyableMixin,Vehicle): # 民航飞机
    pass

    class Helicopter(FlyableMixin,Vehicle): # 直升飞机
    pass

    class Car(Vehicle): # 汽车并不会飞,但按照上述继承关系,汽车也能飞了
    pass


  • 相关阅读:
    radio切换,点击方法onclick
    Android Studio 使用小技巧和快捷键
    Linux命令(1)——xargs命令
    Java-多线程基本
    POJ 2031 Building a Space Station(最小生成树)
    《iOS Human Interface Guidelines》——Popover
    Android在使用WebView时,通过Javascript调用JAVA函数
    Mysql文章笔记
    大量高清文字版PDF编程书籍下载
    Scala函数特性
  • 原文地址:https://www.cnblogs.com/h1227/p/12676032.html
Copyright © 2011-2022 走看看