spring源码笔记

1.try catch finally
catch即便有throw也会先执行finally里边的代码,再抛出异常。

2.参数
Object... args 可以不带参数,带一个,多个,数组
Object[] args 参数必须数组

3.泛型T,? Object
Object是所有类的父类,java所有类都是Object
?同Object差不多,但是?可以缩小范围,? extends String
T(泛型) 用于限定类型。

4.final使用 AbstractBeanFactory 中final修改方法参数
doGetBean(final String name, final Class<T> requiredType, final Object[] args, boolean typeCheckOnly)
避免方法中修改该参数的值或者引用

5.abstract使用 AbstractBeanDefinitionReader抽象类
抽象类使用接口的时候不用全部实现,可实现部分方法,用于子类自己实现。

44/171

6.IO
6.1设计模式
https://www.cnblogs.com/keyi/p/7171664.html
*******装饰模式
InputStream使用装饰模式分析,以输入流为例。
装饰模式样例:
https://www.cnblogs.com/zhangtianq/p/6091047.html

抽象构建角色: Inputstream
具体构建实现角色: StringBufferInputStream、FileInputStream,ByteArrayInputStream、PipedInputStream
抽象装饰角色: FilterInputstream
具体装饰角色: BufferedInputStream、DateInputStream....

理解:
抽象角色:负责定义装饰方法
具体构建实现角色:基于抽象角色完成基本的功能实现支持。
抽象装饰角色:拥有对抽象构建的引用,调用引用的装饰方法
具体装饰角色:添加需要添加的功能
!!代码上实际是具体对象拥有另一对象引用,另一对象拥有另另对象引用,层层串接,就像递归样。装饰多了,占用的空间相对就会多起来
eg:代码编写

*******适配器模式
单向和双向适配,适配器持有单个或者双方引用。
适配器:其实就是一个类,调用具体的方法,从而实现适配。
目标类,适配器,适配者
适配器样例:https://www.cnblogs.com/songyaqi/p/4805820.html
很常见!!!!可以理解为封装

posted on 2018-07-26 20:31  小付瓜  阅读(137)  评论(0)    收藏  举报