【问题标题】:Flutter: protocols, do they exist?Flutter:协议,它们存在吗?
【发布时间】:2019-03-22 02:29:21
【问题描述】:

我找不到在 Flutter 中创建协议的方法。它们存在还是有其他替代方式?

【问题讨论】:

  • 你想不出比“协议”更抽象的词吗?这个问题不包含任何关于你想知道的信息。
  • 我不知道,在 Swift 中我总是称它们为协议。
  • 链接会有所帮助。不是每个人都使用协议,而且您的问题不包含 Swift 这个词。
  • 我简要检查了文档docs.swift.org/swift-book/LanguageGuide/Protocols.html,但它没有提供太多信息。也许这就是其他语言(Java、C#、...)所熟知的接口。 Dart 没有明确的接口概念。在 Dart 中,一个类可以实现任何其他类的公共接口。所以abstract class MyInterface { /* member declarations here */} 可以。
  • 对不起,我以为其他语言也有。我的错。并感谢您的帮助

标签: dart flutter protocols


【解决方案1】:

在 Dart 中,您只需创建一个 abstract class 并放置您希望其子级覆盖的所有方法。您还可以提供一个实现:

abstract class MyAbstractClass {
  
  void method1(); // children must implement this method
   
  void method2() { // this method already has an implementation
    print("Just a print");
  }
  
}

【讨论】:

    【解决方案2】:

    2020年你在找mixinhere

    这几乎就像 Swift 中的一个协议,它甚至可以让你添加函数实现。

    如果链接不起作用,复制粘贴时似乎可以正常工作,请谷歌飞镖混合。

    【讨论】:

    • 我发现 mixin 和 swift 协议之间的主要区别是 mixin 期望属性被初始化
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-31
    • 2018-10-30
    • 2011-03-19
    • 2016-12-15
    • 1970-01-01
    • 2021-01-06
    • 1970-01-01
    相关资源
    最近更新 更多