0

如果您要使用一些第三方库(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 很冗长
  • 更容易出现打字错误
4

3 回答 3

1

我倾向于将 xml 用于我可能想要在构建后更改的属性(例如连接字符串、记录器)

我更喜欢代码中的强类型(编译)流式配置,例如仅在开发期间更改的 NHibernate 映射。

于 2011-02-28T13:49:52.630 回答
0

如果我用流利的方式正确理解了你,你的意思是在代码中?如果是这样,那么我肯定会选择 XML。如果流利的意思是纯文本文件,那么我仍然会选择 XML。优点:

  • 可读性
  • 自我记录标签(当然,如果您创建这些标签;))

缺点:

  • 文件长度,但我不会打扰

目前我所有的项目都是基于 XML 的。

于 2011-02-28T13:50:23.180 回答
0

我会说 XML 配置可能比 Java 配置更简洁,甚至更简单。

查看我在 Spring Integrations 的配置中对 XML 和 Java DSL 上的相同配置的比较wireTap

此外,经验不足的程序员可能更熟悉 XML 配置。因此,将来维护此类配置的努力可能会减少。

于 2016-03-04T16:08:47.877 回答