File tree Expand file tree Collapse file tree 1 file changed +16
-15
lines changed
Expand file tree Collapse file tree 1 file changed +16
-15
lines changed Original file line number Diff line number Diff line change 103103 -- 因为反射的操作是编译后的,所以不存在类型检查问题了
104104 -- 小结:Java反射机制允许程序在运行时透过Reflection APIs取得任意一个已知名称的class的内部信息,包括modifiers(如public、static等)、superclass(如Object)、实现的interfaces(如Serializable)、fields(属性)和methods(方法)(但不包括methods定义),可于运行时改变fields的内容,也可调用methods.
105105 -- 配置文件+反射机制实现开闭原则:在引入配置文件和反射机制后,需要更换或增加新的具体类将变得很简单,只需增加新的具体类并修改配置文件即可,无须对现有类库和客户端代码进行任何修改,完全符合开闭原则。在很多设计模式中都可以通过引入配置文件和反射机制来对客户端代码进行改进,如在抽象工厂模式中可以将具体工厂类类名存储在配置文件中,在适配器模式中可以将适配器类类名存储在配置文件中,在策略模式中可以将具体策略类类名存储在配置文件中等等。通过对代码的改进,可以让系统具有更好的扩展性和灵活性,更加满足各种面向对象设计原则的要求。
106+ ·注解:在编码过程中,为了更好的理解程序,我们通常会加上注释代码,这样可以方便程序员理解。注解就是注释的一种,但是与一般的注释不同的是,注解需要按一定规则编写(见自定义注解),并且注解可以被程序解析,并根据解析结果进行相应处理。如果没有用来读取注解的方法和工作,那么注解也就不会比注释更有用处了。使用注解的过程中,很重要的一部分就是创建于使用注解处理器。Java SE5扩展了反射机制的API,以帮助程序员快速的构造自定义注解处理器。
107+ ·元数据:指用来描述数据的数据。
108+ ·元数据和注解:注解可以用来描述数据,所有注解是元数据的一种实现方式。
109+ ·注解的作用:注解有很多作用,其中最重要的一个就是搭配反射实现开闭原则。因为注解可以被反射解析出来,此时的注解相当于一个配置文件。另外,在java中,除了注解充当配置文件,还可以用xml作为配置文件,但注解优点明显:①在class文件中,可以降低维护成本,annotation的配置机制很明显简单;②不需要第三方的解析工具,利用java反射技术就可以完成任务;③编辑期可以验证正确性,差错变得容易;④ 提高开发效率
110+ ·ts中的注解:ts中其实没有注解的概念,但是前端界曾经还是有语言借鉴了注解:Angular2的AtScript语言,它能完完全全的单纯附加元数据。例如:
111+ @Component({
112+ selector: 'app'
113+ })
114+ class AppComponent {}
115+ 等价于
116+ class AppComponent {}
117+ AppComponent.annotations = [
118+ new Component({
119+ selector: 'app'
120+ })
121+ ]
106122·java自定义注解:
107123@Target({ElementType.METHOD,ElementType.TYPE})
108124@Retention(RetentionPolicy.RUNTIME)
@@ -129,21 +145,6 @@ public @interface Description{
129145public String eyeColor(){
130146 return 'red';
131147}
132- ·元数据:指用来描述数据的数据。
133- ·元数据和注解:注解可以用来描述数据,所有注解是元数据的一种实现方式。
134- ·注解的作用:注解有很多作用,其中最重要的一个就是搭配反射实现开闭原则。因为注解可以被反射解析出来,此时的注解相当于一个配置文件。另外,在java中,除了注解充当配置文件,还可以用xml作为配置文件,但注解优点明显:①在class文件中,可以降低维护成本,annotation的配置机制很明显简单;②不需要第三方的解析工具,利用java反射技术就可以完成任务;③编辑期可以验证正确性,差错变得容易;④ 提高开发效率
135- ·ts中的注解:ts中其实没有注解的概念,但是前端界曾经还是有语言借鉴了注解:Angular2的AtScript语言,它能完完全全的单纯附加元数据。例如:
136- @Component({
137- selector: 'app'
138- })
139- class AppComponent {}
140- 等价于
141- class AppComponent {}
142- AppComponent.annotations = [
143- new Component({
144- selector: 'app'
145- })
146- ]
147148·注解和装饰器区别:
148149 -- 注解(Annotation):java中元数据的一种实现方式。仅提供附加元数据支持,并不能实现任何操作。需要另外的 Scanner 根据元数据执行相应操作。
149150 -- 装饰器(Decorator):ES6中增加的对装饰器模式的简单实现。其仅提供定义劫持,能够对类及其方法的定义并没有提供任何附加元数据的功能。
You can’t perform that action at this time.
0 commit comments