Dart 编程中的 Mixin


Dart 中的 Mixin 是一种在多个类层次结构中再次使用类代码的方式。我们使用 with 关键字后跟一个或多个混入名称。

混入可以使用两种方式,第一种情况是我们希望以类不包含任何构造函数且类对象已扩展的方式使用类代码。在这种情况下,我们使用 with 关键字。

另一种情况是我们希望将混入用作常规类,然后我们使用 mixin 关键字代替类。

现在,让我们在 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);
}

应该注意的是,当我们使用包含 Position 的 Mixin 来扩展 Perimeter 类时,我们正在使用 Mixin。

输出

7.0710678118654755
220

更新于: 21-5-2021

2K+ 次浏览

开启您的职业生涯

完成课程即可获取认证

开始学习
宣传