【发布时间】:2018-08-09 17:20:33
【问题描述】:
最近刚刚发现关于对类属性使用 get 和 set 关键字我想知道在 typescript 类中使用 get/set 时的首选方法是什么:
class example {
private a: any;
private b: any;
getA(): any{
return this.a;
}
setA(value: any){
this.a = value;
}
get b(): any{
return this.b;
}
set b(value: any){
this.b = value;
}
}
我只是好奇是否有任何最佳实践、性能或其他因素。
【问题讨论】:
-
当你想要验证值时,你使用 get 和 set 方法。这种方式很好https://www.typescriptlang.org/docs/handbook/classes.html 我觉得Accesors说得很清楚了
-
这样做有什么意义吗?在那些 getter/setter 中没有业务逻辑,它使代码混乱,使其更难维护。使用 getter/setter 会对性能产生一些影响。问题是,你想用这个封装什么?
-
@12seconds:我只是问我是否应该只使用'getProperty()'或'get property()'和简单的例子。
-
我来自 OOP 背景,理想情况下你想说出什么是有意义的。例如,做
Car.getModel或Car.Model有意义吗?对我来说,我会选择Car.Model。所以这个问题真的是基于意见的。对此没有真正的答案。 -
喜欢 get/set 版本的一个原因是它允许使用双向数据绑定:
[(ngModel)]="b"。使用这些方法,您必须将其拆分为:[ngModel]="getA()" (ngModelChange)="setA($event)"。请注意,您的变量名称应与属性名称不同(例如private _b)。
标签: angular typescript oop