spring的设计模式
- 单例模式
是指在配置文件中注册bean对象的时候设置scope的值为singlenton - 原型模式
也叫克隆模型在bean标签中设置scope的属性为prototype即标识该bean以克隆的方式生成 - 模板模式
核心是父类定义好流程,然后留给子类一些实现的抽象类,例如spring中的JdbcTemplate就是这样的实现 - 观察者模式
当一个对象状态发生改变时,所有依赖于它的对象都得到通知并且字段更新,比较常使用在监听器中 - 工厂模式
(1)简单工厂模式
通过工厂传递进来的参数决定产生那个对象。通常通过getBean方法故意的对象
(2)工厂方法模式
将bean的实例化直接交给容器去管理,实现使用和创建分离,这时是由容器直接管理对象。被称为静态工厂方法模式
还有一种情况bean在创建过程中我们交给一个工厂去实现,二spring容器管理这个工厂。被称为动态工厂方法模型 - 适配器模式
将一个类的接口转换成客户希望的另一个接口。使得原本由于接口不兼容而不能在一起工作的那些类可以在一起工作 - 装饰者模型
又称包装模式,用来动态的为一个对象增加新的功能,无需通过增加子类达到功能扩展 - 代理模型
(1)也是最熟悉的AOP编程分别分为:
MethodBeforeAdvice 前置通知
MethodInterceptor 环绕通知
AfterReturningAdvice 返回后通知
ThrowsAdvice 异常通知
(2)通知(Advice): 除了目标方法以外的操作都称之为通知
(3)切入点表达式
语法
execution(访问权限修饰符 返回值类型 包名.类名.方法名(参数表))
切入点可以是类,方法,注解
切面=入点+通知 - 策略模式
对应与解决某一个问题的一个算法族,允许用户从该算法族总任选一个算法解决某个问题