angular - 为什么将 Angular FormBuilder 创建为服务?
解决方案
好问题。简单来说,就是减少耦合。我能想到三个原因:
首先,要保持一致。Angular 中的所有 util 服务都是可注入的。如果你需要来自 Angular 的东西,你只需注入它来使用它。
其次,也是最重要的,未来兼容。假设有一天,Angular 团队决定 FormBuilder 有一个构造函数,它需要另一个服务。例如:
export class FormBuilder {
constructor(private someInternalService: SomeInternalService)
}
因为FormBuilder
是可注入的,所以他们可以添加内部服务,而不必担心在未来版本中破坏兼容性。
最后,这也将使您能够扩展自己的FormBuilder
. 假设您要创建一个可感知路由器的FormBuilder
. 您可以简单地扩展FormBuilder
,并在一些@NgModule
. FormBuilder
此后,您可以在不破坏任何内容的情况下使用自己的版本。
推荐阅读
- flutter - 如何使用 Flutter 在 Airtable 中读写数据?
- windows - 在 Windows 中右键单击运行 DotNet Core 项目
- spring - Spring何时在内存认证中使用
- java - crashlytics 仪表板没有出现?或 crashlytics 未启用?
- python - 将二进制文件转换为 proto 文件
- r - 忽略 R 中置信区间 (CI) 的 NA
- rust - 为什么过滤 Vec 时会出现双重引用?
- blazor - Blazor EditForm 添加 InputNumber 字段
- c - 带有 SSL 和连接缓存的 libcurl 长轮询
- oracle - 动态操作重定向到 Oracle Apex 中的另一个页面