Dart 编程中的 Mixin
Dart中的Mixin是一种在多个类层次结构中再次使用类代码的方法。我们使用with关键字后跟一个或多个mixins名称。
Mixins可以有两种使用方式,第一种情况是当我们想以类没有任何构造函数并且类的对象被扩展的方式使用类代码时。在这种情况下,我们使用with关键字。
另一种情况是,当我们希望mixin可用作常规类时,我们使用mixin 关键字而不是class。
现在,让我们在Dart中创建不同的类,其中一个是名为Perimeter的简单类,另一个是我们将使用其主体代码的mixin。
示例
考虑下面显示的例子-
import 'dart:math';
class Position {
int x;
int y;
double distanceFrom(Position dis) {
var dx =dis.x- x;
var dy =dis.y- y;
return sqrt(dx * dx + dy * dy);
}
}
class Perimeter {
int length;
int breadth;
int get area => 2 * (length * breadth);
}
class PerimeterView extends Perimeter with Position {}
void main() {
var origin = new Position()
..x = 0
..y = 0;
var p = new PerimeterView()
..x = 5
..y = 5
..length = 10
..breadth = 11;
print(p.distanceFrom(origin));
print(p.area);
}应该注意的是,当我们将Perimeter类与我们的Mixin一起扩展时,我们正在使用mixin。
输出结果
7.0710678118654755 220