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”;
}
}