【发布时间】:2018-06-26 18:35:59
【问题描述】:
我了解封装在 OOP 中的重要性,而访问器(getter/setter)提供了这种抽象级别。
但是,使用 Typescript,我可以在以后将我的属性替换为具有相同名称的访问器,并将我的属性重命名为前缀为下划线(因此不会导致重大更改)。
例如我可以:
class foo {
name: string;
}
稍后,如果我想向该属性添加访问器,我可以更改为以下内容:
class foo {
private _name: string;
get name():boolean {
return this._name;
}
set name(name: string) {
this._name = name;
}
}
这被认为是不好的做法吗?
在这种情况下访问器的目的是什么?
【问题讨论】:
-
这样的访问器没有任何目的。如果他们做的不是简单的公共字段所做的事情(例如,在调用 setter 时计算其他属性),他们就会有。
标签: typescript oop encapsulation accessor