суббота, 24 апреля 2021 г.

Singleton

//Classic way
class Manager1 {
  static Manager1? _instance; //null

  Manager1._internal() {
    print('new instance of Manager1 constructed');
  }

  static Manager1? getInstance() {
    _instance ??= Manager1._internal();
    return _instance;
  }
}


//Dart way
class Manager2 {
  static final Manager2 _instance = Manager2._internal();

  Manager2._internal() {
    print('new instance of Manager2 constructed');
  }

  factory Manager2() {
    return _instance;
  }
}


void main() {

  final m1 = Manager1.getInstance(); //new instance of Manager1 constructed
  final m2 = Manager1.getInstance();

  final m3 = Manager2(); //new instance of Manager2 constructed
  final m4 = Manager2();

}

Комментариев нет:

Отправить комментарий