设计模式
约翰.史密斯
生活不止有眼前的苟且。
展开
-
装饰器模式和观察者模式
文章目录装饰器模式装饰者模式的应用场景装饰者模式在源码中的应用装饰者模式的优缺点观察者模式观察者模式的应用场景观察者模式在源码中的应用总结装饰器模式装饰者模式的应用场景装饰者模式(Decorator Pattern)是指在不改变原有对象的基础之上,将功能附加到对象上,提供了比继承更有弹性的替代方案(扩展原有对象的功能),属于结构型模式。装饰者在代码程序中适用于以下场景:1、用于扩展一个类的功能或给一个类添加附加职责。2、动态的给一个对象添加功能,这些功能可以再动态的撤销。例如登录功能定义操原创 2020-11-28 20:51:13 · 329 阅读 · 0 评论 -
策略模式和适配器模式的区别
文章目录策略模式适配器模式总结策略模式对于策略模式来说,在调用者看来每个策略都是已知的策略,对于会返回怎样的结果,有着一个预期例如调用Arrays.sort(T[], java.util.Comparator<? super T>) public static void main(String[] args) { List<Integer> lists = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);原创 2020-11-28 14:49:22 · 4464 阅读 · 3 评论 -
模板模式和适配器模式
文章目录模板模式(Template)简介模板模式(Template)简介模板模式又叫模板方法模式,是指定一个算法的骨架,并允许子类为一个或多个步骤提供实现,模板方法使得子类可以在不改变算法结构的情况下重新定义算法的某些步骤,属于行为性设计模式.模板方法适用于以下应用场景:1.一次性实现一个算法的不变的部分,并将可变的行为留给子类来实现。2.各子类中公共的行为被提取出来并集中到一个公共的父类中,从而避免代码重复。例如jdbc的使用,一次jdbc的调用一般需要经历如下流程public void原创 2020-11-28 01:00:44 · 763 阅读 · 0 评论 -
委派模式和策略模式
文章目录委派模式介绍举例策略模式介绍委派模式介绍并不属于23种设计模式,可以理解为一种特殊的静态代理,但比起代理关注过程(例如JDK动态代理的Invoke),委派更关注结果(对对应返回值的处理,派遣任务后处理结果)举例例如在SpirngMVC的dispatchservlet中对于请求的映射派遣,就用到了委派模式@RestControllerpublic class HelloController { @GetMapping("/") public String hello(@原创 2020-11-26 17:26:04 · 245 阅读 · 1 评论 -
代理模式(JDK和CGLib)
文章目录掌握代理模式的应用场景和实现原理了解静态代理和动态代理的区别。静态代理动态代理JDK实现动态代理CGLib 实现动态代理生成代理对象通过java代码通过jvm工具生成的代理对象分析了解CGLib和JDK Proxy的根本区别手写实现JDK的动态代理生成Proxy类代码生成的代理类小结手写实现小结掌握代理模式的应用场景和实现原理生活中常见的常见,如租房中介,黄牛,婚介,猎头等代码中常见的应用有事务代理,非侵入式的日志监听等.代理模式(Proxy Pattern)的定义就是为一般对象提供代理(访原创 2020-11-25 22:43:06 · 132 阅读 · 0 评论 -
单例模式及原型模式
文章目录前言单例模式的应用饿汉式懒汉式通过内部类初始化IDEA下多线程的调试反射暴力攻击单例解决方案及原理分析序列化破坏单例的原理及解决方案。前言单例模式(Singleton Pattern)是指确保一个类在任何情况下都绝对只有一个实例,并提供一个全局访问点。单例模式是创建型模式。例如ServletContext、ServletContextConfig在 Spring 框架应用中 ApplicationContext,数据库的连接池都是单例模式单例模式的应用单例模式又分为饿汉式和懒汉式饿汉式原创 2020-11-25 02:59:18 · 1298 阅读 · 2 评论 -
设计模式学习
系列文章目录第 00 章 准备工作原创 2020-11-24 01:42:00 · 107 阅读 · 1 评论