注解与配置
Java的注解(Annotation)在.NET叫自定义属性(Custom Attribute),在本文使用注解这个名指代这两个本质上是相同的东西。
配置,是影响程序行为的参数,一般放在与程序相对独立的文件中,在以前通常是ini文件,在现在通常是xml文件,也有放在数据库中的。
理论上讲,通过注解能表示的信息,通过配置也可以。
但两者还是有些区别,比如注解在编译时就定型了,不能修改了(动态修改程序集另当别论),而配置没有这些限制。配置的制作、修改没有注解那么方便,但更为灵活。
我的理想规则是这样的:
- 组件的使用者优先使用注解而不是配置。
- 组件同时支持配置,当配置与注解冲突时,以配置为准。
- 要慎重定好注解、配置的缺省值。
优点:
- 多数情况下使用注解,方便。比配置不易出错。
- 少数情况下在编译后要调整,使用配置文件,灵活。
- 配置只写与注解的差异信息,工作量远小于全部信息写在配置上。
缺点:
- 组件制作者需要同时支持注解和配置,相比只支持其中一个,工作量比较大。