外观模式也叫门面模式,主要是降低调用方使用接口时的复杂逻辑组合。
其实外观模式说起来,大家肯定都不陌生,比如我们自定义的注解,这种就是属于外观模式。
注解+aop 完美实现。
这里说一下注解的声明
@Inherited // 表示注解可以被继承
@Repeatable // 表示此注解可以重复注解某一个元素
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface DoRequest {
String key() default "";
String value() default "";
}
RetentionPolicy 类型有三个
- RetentionPolicy.SOURCE:注解信息只保留在源代码中,编译器编译源码时会将其直接丢弃
- RetentionPolicy.CLASS:注解信息只保留在 class 文件,但是虚拟机不会维护默认值
- RetentionPolicy.RUNTIME:注解信息保留在class文件,虚拟机也会持有此注解信息,这种设置可以通过反射获得注解的信息。
public enum ElementType {
TYPE,
FIELD,
METHOD,
PARAMETER,
CONSTRUCTOR,
LOCAL_VARIABLE,
ANNOTATION_TYPE,
PACKAGE,
TYPE_PARAMETER,
TYPE_USE
}



