首页 > 解决方案 > Dart - 强制一个类有一个工厂

问题描述

我有以下型号:

class Author implements Model {
  String name;
  String email;

  User({this.name, this.email});

  factory User.fromMap(Map data) {
    return User(
      name: data['name'] ?? 'Jon Doe'
      email: data['email'] ?? 'jon@doe.com';
    )
  }
}

class Post implements Model {
  User author;
  String content;

  User({this.name, this.email});

  factory Post.fromMap(Map data) {
    return Post(
      author: Author.fromMap(data['author']);
      content: data['content'];
    )
  }
}

我的问题是,我怎样才能告诉飞镖“强制”所有模型都有一个factory Model.fromMap(Map data)

我想这样做的原因是我想从 API (JSON) 中获取这些模型。

标签: flutterdart

解决方案


您不能对类的静态形状提出任何要求,因为您无法使用该信息完成任何事情。为了调用 Post.fromMap你需要特别提到Post.fromMap,你不能调用someVariable.fromMap()。已经有一些关于能够向静态接口添加需求的讨论,但没有任何计划。https://github.com/dart-lang/language/issues/356


推荐阅读