typescript - Typescript 中是否需要访问器?
问题描述
我了解封装在 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;
}
}
这被认为是不好的做法吗?
在这种情况下访问器的目的是什么?
解决方案
访问器是一个实现细节。如果您遵循“程序到界面,而不是实现”的规则,用户foo
应该只看到
interface foo {
name: string;
}
这个接口是如何实现的并不重要。它可以是一个具有 getter 和 setter 的类,一个具有公共属性的类,甚至是一个普通的对象。
哪个最好取决于特定实现必须遵守的约束条件。在大多数情况下,访问器似乎不是必需的,但有时可能很方便。
推荐阅读
- linux - 如何从精灵中提取枚举信息?
- java - 我必须制定球队之间的比赛时间表
- azure - 使用 AzureADB2C 和 B2B 进行单点登录
- java - 如何实现接口内联而不是在 Dart/Flutter 中使用类?
- python - 基本python密码保险库,答案重复不停等问题
- android - 在 ImageView 上设置后获取 drawable 的名称
- regex - 正则表达式 [ 1 ( 0 1* 0)* 1 ]* DFA
- javascript - 使用辅助 JS 文件在 Vue 和 Laravel 中嵌入 Typeform
- powershell - 我们可以添加等待进程完成的最长时间吗?
- javascript - 指定属性“multi:true”时,Kendo Grid 的列可过滤属性“ui”不起作用