美文网首页
Dart:二十三、工厂函数

Dart:二十三、工厂函数

作者: DB001 | 来源:发表于2025-05-22 11:29 被阅读0次

工厂函数

调用子类

abstract class Phone {
  void call();
  factory Phone(String type) {
    switch (type) {
      case "android":
        return Android();
      case "ios":
        return Ios();
      default:
        throw "The '$type' is not an animal";
    }
  }
}

class Android implements Phone {
  @override
  void call() {
    print('Android Calling...');
  }
}

class Ios implements Phone {
  @override
  void call() {
    print('Ios Calling...');
  }
}

void main() {
  var android = Phone('android');
  var ios = Phone('ios');
  android.call();
  ios.call();
}

单例模式

class Phone {
  static final Phone _single = Phone._internal();
  Phone._internal();

  factory Phone() {
    return _single;
  }

  void call() {
    print('Calling...');
  }
}

void main() {
  var p1 = Phone();
  var p2 = Phone();
  print(identical(p1, p2));

  Phone().call();
}

减少重复实例对象

class Phone {
  int _number;
  Phone(this._number);

  factory Phone.fromJson(Map<String, dynamic> json) =>
      Phone(json['number'] as int);

  void call() {
    print('Calling $_number...');
  }
}

void main() {
  var p = Phone.fromJson({"number": 911});
  p.call();
}

如果不用工厂函数,就要用类静态方法,这样会有多余的实例对象

相关文章

  • Flutter学习笔记3 -- Dart语法学习扩展

    本文是对Dart语法的一些补充内容 类的特性 1.工厂构造函数普通构造函数会默认返回创建的对象,工厂构造函数需要手...

  • 【Dart 专题】Factory 工厂构造函数

    小菜学习 Flutter 有一段时间,虽可以应用基本的 Dart 语法,但对于一些特殊的语法还是很陌生,小菜准备开...

  • Flutter笔记3:Dart的单例模式与异步

    想要在数据库工具类中使用单例模式。使用Dart的工厂构造函数可以实现。 这里还使用了命名构造函数,在函数体内初始化...

  • flutter单例模式

    注意:Dart中实现单例模式的标准做法就是使用static变量+工厂构造函数的方式,这样就可以保证Manager(...

  • Dart语法(下)

    前文链接: Dart简介 Dart语法(上) 内容: 函数(方法)函数定义及各类函数;函数参数;闭包 面向对象定义...

  • Flutter之Dart基础

    一. Hello Dart 1.1 Hello Dart 和大多数语言一样,Dart的入口函数也是Main函数,新...

  • dart工厂构造函数的简单使用

  • 【Dart】函数

    声明函数 直接声明Dart中声明函数不需要function关键字 箭头函数+Dart中 的箭头函数中,函数体只能写...

  • dart语法7-泛型

    dart语法1dart语法2-内置类型dart语法3-函数dart语法4-操作符dart语法5-异常dart语法6...

  • dart语法8-库

    dart语法1dart语法2-内置类型dart语法3-函数dart语法4-操作符dart语法5-异常dart语法6...

网友评论

      本文标题:Dart:二十三、工厂函数

      本文链接:https://www.haomeiwen.com/subject/vvmjbjtx.html