@Target(value={METHOD,CONSTRUCTOR}) @Retention(value=SOURCE) public @interface AllowedAccessors
面向定向类的可访问方法.
例如,一个Entity
为了能让IRepository
在构造时传入一些属性,就需要把本来无需public
的方法公开.
这破坏了封装,并且可能引发bad side effect
.
为了解决这个问题,我们引入AllowedAccessors
,并结合AllowedAccessorsEnforcer
通过静态扫描保障.
public abstract Class[] value
如果类访问自己内部方法,无需声明.
Example:
public class Task {
℗AllowedAccessors(ITaskRepository.class)
public bar() {}
void foo() {
// 自己访问自己定义的方法,在bar方法的Accessors里无需声明Task自己
bar();
// ...
}
}
Copyright © 2020–2023. All rights reserved.