代码如下所示:
/// 工厂构造函数,
/// 也叫 “单例模式”,是设计模式的一种,是面向对象很重要的一种设计模式,
/// 一个程序无论实例化多少类,工厂构造函数只返回第一次实例化的对象,这样
/// 就会节约许多计算机资源。普通构造函数每次实例化类的时候,就会开辟一段
/// 内存来存放实例化对象资源。
class Person{
String name;
// 静态属性存放实例化对象
static var instance;
//工厂构造函数
factory Person([String name = "刘备"]){
// 工厂构造函数不能使用 this 关键字
Person.instance ??= new Person.newSelf(name);
return Person.instance;
}
Person.newSelf(this.name);
}
void main(){
var p1 = new Person('关羽');
print(p1.name);
var p2 = new Person('张飞');
print(p2.name);
var p3 = new Person('诸葛亮');
print(p3.name);
// 判断两次实例化的对象是否一致。
print(p1 == p2);
print(p1 == p3);
}
程序执行效果: