千家信息网

Flutter单例怎么实现

发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,本篇内容主要讲解"Flutter单例怎么实现",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Flutter单例怎么实现"吧!Flutter(able) 的单
千家信息网最后更新 2025年11月08日Flutter单例怎么实现

本篇内容主要讲解"Flutter单例怎么实现",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Flutter单例怎么实现"吧!

    Flutter(able) 的单例模式

    一般来说,要在代码中使用单例模式,结构上会有下面这些约定俗成的要求:

    • 单例类(Singleton)中包含一个引用自身类的静态属性实例(instance),且能自行创建这个实例。

    • 该实例只能通过静态方法 getInstance() 访问。

    • 类构造函数通常没有参数,且被标记为私有,确保不能从类外部实例化该类。

    回顾iOS,单例的写法如下:

    static JXWaitingView *shared;+(JXWaitingView*)sharedInstance{  static dispatch_once_t onceToken;  dispatch_once(&onceToken, ^{      shared=[[JXWaitingView alloc]initWithTitle:nil];  });  return shared;}

    其目的是通过dispatch_once来控制【初始化方法】只会执行一次,然后用static修饰的对象来接收并返回它。所以核心是只会执行一次初始化。

    创建单例

    创建单例的案例

    class Student {  String? name;  int? age;  //构造方法  Student({this.name, this.age});  // 单例方法  static Student? _dioInstance;  static Student instanceSingleStudent() {    if (_dioInstance == null) {      _dioInstance = Student();    }    return _dioInstance!;  }}

    测试单例效果

    测试一

    import 'package:flutter_async_programming/Student.dart';void main() {  Student studentA = Student.instanceSingleStudent();  studentA.name = "张三";  Student studentB = Student.instanceSingleStudent();  print('studentA姓名是${studentA.name}');  print('studentB姓名是${studentB.name}');}

    运行效果

    测试二

    import 'package:flutter_async_programming/Student.dart';void main() {  Student studentA = Student.instanceSingleStudent();  studentA.name = "张三";  Student studentB = Student.instanceSingleStudent();  studentB.name = "李四";  print('studentA姓名是${studentA.name}');  print('studentB姓名是${studentB.name}');}

    运行效果

    到此,相信大家对"Flutter单例怎么实现"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

    0