6
我正在查看一些代码,其中使用类级别注释为某些类“添加”属性,稍后使用反射访问和使用这些属性。类级别注释与接口
我的问题: 什么时候使用注释向类中添加新字段是合适的,而不是使用接口。这有什么好处和缺点?
我正在查看一些代码,其中使用类级别注释为某些类“添加”属性,稍后使用反射访问和使用这些属性。类级别注释与接口
我的问题: 什么时候使用注释向类中添加新字段是合适的,而不是使用接口。这有什么好处和缺点?
我不知道注释会替换一个界面,但我可以看到它的魅力。尽管如此,这一切都取决于实现。
注解提供元数据以进一步描述代码,消费者(大多数时间)在运行时使用反射来解释代码。使用接口,这个实施合同是明确定义的。
你可以有:
interface CrudDao<T> {
Serializable create(T t);
T read(Serializable id);
void update(T t);
void delete(T t);
}
这将是实现一个繁琐的合同,可能会招致某种方法链接的。
相反,你可以这样做:
class SomeDao {
@Create
long create(SomeEntity e) { // code }
@Read
SomeEntity read(long id) { // code }
@Update
void update(SomeEntity e) { // code }
@Delete
void delete(SomeEntity e) { // code }
}
的缺点是,它会很麻烦的使用方法:
class CrudFactory {
long create(Class clazz, Object obj) {
// loop through methods
// find method with @Create
// call method
}
}
批注在这个例子是矫枉过正的大部分时间,IMO 。关于明确定义的,有据可查的合同有一些要说的。
我对使用接口向类中添加字段的含义有些困惑。你的意思是使用注释来添加方法和getter-setter方法吗? – Uri 2010-02-10 04:35:24
你也可以在这里分享片段吗?它肯定会帮助我们理解你的问题。 – 2010-02-10 04:46:32