模式 | 简介 | 一句话归纳 | 应用场景 |
---|---|---|---|
代理模式 proxy |
1、两个参与角色:执行这(代理人)、被代理人 2、对于被代理人来说,这件事情是一点要做的, 但是我自己又不想做或者没时间做,找代理 3、需要获取到被代理人的个人资料 |
办事要求人,所以找代理 | Spring aop?aop是一种思想!是aop思想的底层实现技术,采用jdk代理与cglib类库 |
工厂模式 factory |
1、对调用这隐藏复杂的逻辑处理过程,调用这只关 心执行结果 2、工厂要对结果负责,保证生产出符合规范的产品 |
只对结果复杂,不要三无 产品 |
Spring BeanFactory |
单例模式 singleton |
1、保证从系统启动到系统终止,全过程只会产生 一个实例。 2、当我们在应用中遇到功能性冲突的时候,需要使 用到单例模式 |
保证独一无二 | Spring Bean默认是单例 |
委派模式 delegate |
1、两个参与角色,委托人与被委托人 2、委托人和被委托人在权力上完全平等 (即实现同一个接口) 3、委托人持有被委托人的引用 4、不关心过程,只关心结果 |
干货是你的(普通员工) 功劳是我的(项目经历) |
DispatcherServlet |
策略模式 strategy |
1、执行最终结果一样 2、执行过程和执行逻辑不一样 |
条条大路通罗马 | spring jdbc rowmap |
原型模式 prototype |
1、首先要有一个原型 2、数据内容相同,但对象实例不同 (完全不同的内存地址) |
拔一根毫毛,吹出千万个 | ORM框架,fastjson 记录行转换为java对象 |
模板模式 template |
1、执行流程固定,但中间有些步骤有细微差别 (运行时才确定) 2、可实现批量生产 |
流程标准化,原料自己加 | jdbc执行规范(加载驱动-> 建立连接->创建语句集(此处不同,可以进行模板化,不同数据库选择不同的语法解析) ->执行->结果) JdbcTemplate |