换句话说,应用程序的功能并不能完全由其自己的代码来解释,而不能由框架的文档来完全解释。
使用框架的应用程序的功能始终取决于框架,关于配置的约定在这方面没有任何区别。
以我的经验,约定优于配置不仅使代码更具可读性,而且还减少了引入细微错误(尤其是复制粘贴错误)的可能性。
例如,假设在某个框架A中,事件FooBar
触发了对的调用handleFooBar
。在另一个框架B中,此关联配置在XMLfile中的某个位置。
因此,在A中,
handleFooBar() {
...
}
除非您拼错了FooBar,否则只要FooBar发生,它将被调用。
在B中,又是
handleFooBar() {
...
}
但是也
<eventconfiguration>
<event>
<type>FooBar</type>
<handler>handleFooBar</handler>
</event>
</eventconfiguration>
通过这种方式配置了数百种东西,很容易意外地产生一个细微的错误,例如
<eventconfiguration>
<event>
<type>BarFoo</type>
<handler>handleFooBar</handler>
</event>
</eventconfiguration>
因为复制粘贴后,我们只进行了更改,<type>
但忘记了更改<handler>
。
由于这些配置文件又大又单调,因此与实际程序代码中发现类似错误的人相比,通过校对发现错误的可能性较小。