关于Flutter minxin 看法

1.minxin 限制必须无初始化,这条规定开始并不理解,后续通过查看minxin 官方的各种用法和对比Object-C上面的协议才豁然开朗,

2.官方也解释就是解决对面向对象的多继承。

3. 所以 可以用于一些可提取(抽象)出来的通用方法和属性,从而切面(横向,或者理解为拥有部分相同特性但是没有太大关联的平级类)编程。

mixin ProtocolClass extends  Object {

   //公共方法

    minxFunction () {

    }

   //不适合继承关系的属性,即上面的第三点描述

    late String name;

    late String otherProperty;

   ...

}


Class BizClass1 extend Object mixin ProtocolClass {

    BizClass1() {

        minxFunction();

       //可以访问到ProtocolClass所有属性和方法

        name = “BizClass1”;

    }

}

Class BizClass2 extend Object mixin ProtocolClass {

     BizClass2() {

        minxFunction();

       //可以访问到ProtocolClass所有属性和方法

        name = “BizClass2”;

    }

}

你可能感兴趣的:(关于Flutter minxin 看法)