1、给已有类添加扩展属性的代码技巧
普通扩展方式:
使用方式,let a = sample.age2
弊端,扩展的属性和原有属性在同一调用层级,不方便管理
使用结构体封装一层的方式:
使用方式,let a = sample.reactive.age
这样的弊端是,所有遵循了aExtension协议的类,都会有一样的扩展属性
RAS使用的扩展方式:
使用方式,let a = sample.reactive.age
给扩展结构体增加了泛型,这样在对aReactive进行扩展的时候,可以指定泛型的约束范围,达到只针对某一类型进行扩展
上述三种实现扩展的方式依次递进,最后一种方式为最优