感君一回顾,思君朝与暮。
<一>dart的工厂构造和单例
- factory的官方描述:当你使用factory关键词时,你能控制在使用构造函数时,并不总是创建一个新的该类的对象,比如它可能会从缓存中返回一个已有的实例,或者是返回子类的实例。
值得注意的是:构造函数不能有返回值,而factory必须有///类 class FactoryClass { static FactoryClass? _instance; // 单例构造方法 // factory FactoryClass() { // if(_instance == null) { // _instance = FactoryClass._init(); // } // return _instance!; // } // 简化 // factory FactoryClass() { // return _instance ??= FactoryClass._init(); // } // 二次简化 factory FactoryClass() => _instance ??= FactoryClass._init(); // 私有的命名构造函数 FactoryClass._init(); }
<二>初始化列表
- 初始化列表的目的:给final变量赋值,校验传递参数的正确性。
class person { final String _name;//私有属性 int age; num height; person(String name,this.age,this.height):_name = name,assert (age>0),assert(height>180){ print('name:$_name\nage::$age,\nnum:$height'); } void printAction(){ print('name:$_name\nage::$age,\nnum:$height'); } }
- 我们定义一个类,我们私有属性不想暴漏的话,我们可以自定义一个行参,之后赋值给私有属性,我们也可以校验参数传递的正确性,如果参数条件不满足的话就会报错
网友评论