重写getter和setter方法或者“懒加载”?

重写getter和setter方法或者“懒加载”?_第1张图片
封装的好处.png
  • 在开发中,尽量不要使用_name这种类型的调用,而是声明为属性,直接使用self.name这样的写法。声明为属性,我们可以重写getter方法,而且就是所谓的lazy loading--也就是“懒加载”。
- swifts 中有个延迟存储属性 lazy .其实都是一样的。就是,第一次使用时才初始化!如果没有用到它,就不会执行那行代码,也就不会初始化!(作用:有些方法或属性、类的值它大,如果没有用到,也进行初始化一遍,等到调用的时候又初始化一遍!那么就会影响性能!)

如下就是一个例子,"只有在使用到的时候,直接通过self.yearSources就可以直接使用了",而不需要再提供一个方法来初始化数据:

"懒加载"-- 就是重写 getter 方法啊!(只读!)

重写getter和setter方法或者“懒加载”?_第2张图片
重写get方法.png

善于重写setter方法(可读可写!)

  • 重写setter方法,可以给我们带来很大的便利。看下面的例子:
重写getter和setter方法或者“懒加载”?_第3张图片
重写set方法.png

重写这个方法,就不需要额外提供一个方法来更新数据显示了。

我们只需要调用如下:


屏幕快照 2015-11-19 17.17.57.png

太方便了!
就可以了,因此这个方法已经重写了而且也自动更新数据显示了。

补充:

// 封装的好处;

总结: 只要你想改变值(成员变量的值),就要调用 set 方法,(也就是监听set方法,监听属性的改变!)

1.只要 调用 set 方法,就可以修改成员变量的值!,就是“监听”成员变量的改变。

2、通过“监听” 或 set 方法,就可以修改成员变量的值

3、别人 一担 调用 我的 set 方法,一定是想修改我的东西(成员值);-- 所以,这也就是为什么有时侯修改属性值或什么的,考虑重写 set 方法的原因了!

你可能感兴趣的:(重写getter和setter方法或者“懒加载”?)