如何从Mixins覆盖主要的抽象方法

时间:2019-05-29 11:33:38

标签: flutter dart

如示例所示,

  • 我有Core类,用于将共享变量/方法等分发到mixins中。
  • 用于定义必要方法的抽象类,提供有关api的摘要。
  • 用于导入像提供程序之类的所有内容的主类。

当然没有任何运行时错误。

此方法存在问题,mixin方法无法识别@override注释。

我想为我的包裹创建精细,整洁的结构。对于这种情况,最好的方法是什么?我在做什么错误?

abstract class AbstractCore {
  void foo();

  void bar();
}

class Core {
  var shared;
}

mixin Feature1 on Core {
  @override // not recognized by syntax of course
  void foo() {
    // something with [shared]
  }
}

mixin Feature2 on Core {
  @override // not recognized
  void bar() {
    // yet another thing with [shared]
  }
}

class Main with Core, Feature1, Feature2 implements AbstractCore {}

您可以接受:

  • 核心:ApiBase(用于共享Client对象,常量,保持dispose方法...)
  • 功能1:假设与身份验证相关的Api调用
  • 功能2:比方说与内容相关的Api调用
  • 主要:Api提供程序。

1 个答案:

答案 0 :(得分:0)

注释对代码的作用没有任何影响。它们仅用于可读性和工具。

在您看来,分析仪抱怨@override是因为您没有覆盖任何内容。

只需删除@override装饰器-不需要它。