设计模式-Spring

设计模式总结
代理模式
静态代理
- 静态代理
动态代理
- JDK自带动态代理:基于接口,cglib.jar (全称 Code Generation Library 代码生成库),asm.jar(全称 assembly,装配)
- Cglib动态代理:基于继承,Proxy,InvocationHandler
特点
- 执行者、被代理人
- 对于被代理人来说,这件事情是一定要做的,但是我自己又不想做或者没有时间做,找代理。
- 需要获取到被代理的人个人资料。
AOP
- 事务代理(声明式事务,哪个方法需要加事务,哪个方法不需要加事务)
- 日志监听
工厂模式
- 简单工厂、工厂方法、抽象工厂
单例模式
- 饿汉式,懒汉式,注册登记式,静态内部类,枚举式等
生活场景
- 配置文件:如果不是单例(针对于某一种功能的配置),如果有多个领导,你到底听谁的? 选择恐惧症)
- 日历:在中国,有阴历(农历,一般用于指导农业生产,二十四节气)和阳历(公历,一般用于国际交流、企事业单位的工作指导)
特点
- 保证从系统启动到系统终止,全过程只会产生一个实例。
- 当我们在应用中遇到功能性冲突的时候,需要使用单例模式。
委派模式
What
- 受托人,委托人(社会上是平等关系)
- 公司里面:项目经理,普通员工(法律上平等的,工作的关系,各自的职责会不一样)
特点
- 类似于中介的功能(委托机制)
- 持有被委托人的引用。
- 不关心过程,只关心结果。
Why
主要目的就是隐藏具体实现逻辑
策略模式
- 过程不同,但结果一样。
原型模式
- 数据内容完全一样,但实例不同。
模板模式
- 执行流程固定,但中间有些步骤有细微差别。
以上是一些总结,后期会把伪代码贴上来