
今天我们在把一段 Angular 组件中的领域逻辑搬到 ABAP 类时,很容易遇到这样的代码形态,类内部保存一个私有字段,外部读取price时自动执行get price(),外部给price赋值时自动执行set price(value)。从调用端看,它仍然像普通属性,写法只是product.price或product.price = value,但读写动作已经被一段方法逻辑拦截。ABAP 没有与这种语法完全对应的语言特性。ABAP 类定义中不存在放在方法名前面的get和set访问器关键字,也不存在把普通属性访问透明映射到某个方法的机制。ABAP 采用的是更显式的方式,私有属性负责保存状态,普通实例方法负责读取、校验和修改状态。典型写法是get_price与set_price,调用端也必须明确写成lo_product-get_price( )与lo_product-set_price( ... )。这里还要纠正一个容易混淆的说法。Angular 组件确实由 TypeScript 类承载,Angular 官方文档也把 TypeScript 类列为组件的基本组成部分。类里的get与set来自 JavaScript 和 TypeScript 的属性访问器能力,并不是 Angular 单独发明的关键字。TypeScript