自定义类添加reactive扩展属性

1、给已有类添加扩展属性的代码技巧

普通扩展方式:


image.png

image.png

使用方式,let a = sample.age2

弊端,扩展的属性和原有属性在同一调用层级,不方便管理

使用结构体封装一层的方式:


image.png
image.png

使用方式,let a = sample.reactive.age

这样的弊端是,所有遵循了aExtension协议的类,都会有一样的扩展属性

RAS使用的扩展方式:


image.png

image.png

使用方式,let a = sample.reactive.age

给扩展结构体增加了泛型,这样在对aReactive进行扩展的时候,可以指定泛型的约束范围,达到只针对某一类型进行扩展

上述三种实现扩展的方式依次递进,最后一种方式为最优

你可能感兴趣的:(自定义类添加reactive扩展属性)