1.首先創(chuàng)建出類背镇,例如下:
class Manager {
}
2.將匿名構(gòu)造方法私有化:
class Manager {
Manager._();
}
現(xiàn)在外部已經(jīng)無法調(diào)用Manager的匿名初始化構(gòu)造方法了掷倔。如圖:
image.png
3.創(chuàng)建外部使用的類屬性:
class Manager {
Manager._();
static final Manager instance = Manager._();
}
至此耍缴,外部就可以使用類屬性instance來使用單例了辩蛋。
final manager = Manager.instance;
知識點:static表示屬性是類屬性糙申,final表示屬性是常量宾添,只能被賦值一次船惨。這兩者結(jié)合,就能夠?qū)崿F(xiàn)單例缕陕。
4.可以使用工廠方法粱锐,將類屬性的調(diào)用給隱藏起來:
class Manager {
Manager._();
static final Manager _instance = Manager._();
factory Manager() => _instance;
}
至此,后續(xù)調(diào)用工廠方法扛邑,拿到的就都是同一個實例怜浅。
final manager = Manager();