如果您要使用一些第三方库(logging、orm、di 等)开始一个新项目,您更愿意通过使用 fluent 接口编程还是使用 XML 文件来配置所有这些库?
您会使用仅支持其中一个选项(Fluent 或 XML)的库吗?还是您更喜欢可以在多种配置策略之间进行选择的库。
对于喜欢代码的人,可以以此为假设示例(用 C# 编写)。
这是流畅的配置:
LogConfiguration.ConfigureStorage()
.ForDatabase("CommonDB")
.AsMsSqlDatabase()
.WithConnectionString("server=(local); database=Northwind; Integrated Security=true;")
.AsDefault();
这是 XML 配置:
<logging>
<database name="CommonDB" provider="MSSQL" connString="server=(local); database=Northwind; Integrated Security=true;" default="true" />
</logging>
最后,Fluent 和 XML 配置的优缺点是什么?
到目前为止,我们已经做到了:
代码中的流畅配置
优点
- 编译器评估的强类型
- 条件配置
缺点
- 构建后无法重新配置
XML 配置
优点
- 能够在部署后轻松更改
缺点
- XML 很冗长
- 更容易出现打字错误