自定义类添加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进行扩展的时候,可以指定泛型的约束范围,达到只针对某一类型进行扩展

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容