设计模式
清风不灭
这个作者很懒,什么都没留下…
展开
-
观察者模式
观察者模式的应用场景 观察者模式(Observer Pattern)定义了对象之间的一对多依赖,让多个观察者对象同时监听一个主体对象,当主体对象发生变化时,它的所有依赖者(观察者)都会收到通知并更新,属于行为型模式。观察者模式有时也叫做发布订阅模式。观察者模式主要用于在关联行为之间建立一套触发机制的场景。观察者模式在现实生活应用也非常广泛,比如:微信朋友圈动态通知、邮件通知、广播通知、桌面程序的...原创 2020-03-12 18:01:17 · 179 阅读 · 0 评论 -
装饰者模式
装饰者模式的应用场景 装饰者模式(Decorator Pattern)是指在不改变原有对象的基础之上,将功能附加到对象上,提供了比继承更有弹性的替代方案(扩展原有对象的功能),属于结构型模式。装饰者模式在我们生活中应用也比较多如给煎饼加鸡蛋;给蛋糕加上一些水果;给房子装修等,为对象扩展一些额外的职责。装饰者在代码程序中适用于以下场景: 1、用于扩展一个类的功能或给一个类添加附加职责。 2、动态的...原创 2020-03-12 16:53:59 · 118 阅读 · 0 评论 -
适配器模式
适配器模式(Adapter Pattern)是指将一个类的接口转换成客户期望的另一个接口,使原本的接口不兼容的类可以一起工作,属于结构型设计模式。 适配器适用于以下几种业务场景: 1、已经存在的类,它的方法和需求不匹配(方法结果相同或相似)的情况。 2、适配器模式不是软件设计阶段考虑的设计模式,是随着软件维护,由于不同产品、不同厂家造成功能类似而接口不相同情况下的解决方案。有点亡羊补牢的感觉。 生...原创 2020-03-10 15:37:49 · 549 阅读 · 0 评论 -
模板模式
模板模式通常又叫模板方法模式(Template Method Pattern)是指定义一个算法的骨架,并允许子类为一个或者多个步骤提供实现。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法的某些步骤,属于行为性设计模式。模板方法适用于以下应 用场景: 1、一次性实现一个算法的不变的部分,并将可变的行为留给子类来实现。 2、各子类中公共的行为被提取出来并集中到一个公共的父类中,从而避免代码...原创 2020-03-10 09:22:27 · 171 阅读 · 0 评论 -
委派模式和策略模式
目录 委派模式 策略模式 策略模式在JDK 源码中的体现 策略模式在Spring 源码中的应用 策略模式的优缺点 委派模式与策略模式综合应用 委派模式 委派模式不属于GOF23 种设计模式中。委派模式(Delegate Pattern)的基本作用就是负责任务的调用和分配任务,跟代理模式很像,可以看做是一种特殊情况下的静态代理的全权代理,但是代理模式注重过程,而委派模式注重结果。委派...原创 2020-03-09 15:58:33 · 454 阅读 · 0 评论 -
代理模式总结
JDK Proxy 生成对象的步骤如下: 1、拿到被代理对象的引用,并且获取到它的所有的接口,反射获取。 2、JDK Proxy 类重新生成一个新的类、同时新的类要实现被代理类所有实现的所有的接口。 3、动态生成Java 代码,把新加的业务逻辑方法由一定的逻辑代码去调用(在代码中体现)。 4、编译新生成的Java 代码.class。 5、再重新加载到JVM 中运行。 以上这个过程就叫字节码...原创 2020-03-08 23:56:53 · 176 阅读 · 0 评论 -
深入分析单例模式
内容来源:沽泡学院 目录 饿汉式单例 懒汉式单例 懒汉模式——synchronized 关键字的使用 懒汉模式——双重检查锁(DCL) 懒汉模式——静态内部类实现(Holder) 反射破坏单例 史上最牛B 的单例模式 序列化破坏单例 注册式单例 注册式单例——枚举式 注册式单例——容器缓存 ThreadLocal 线程单例 单例模式小结 饿汉式单例 先来看单例模式的...原创 2020-02-29 21:41:40 · 409 阅读 · 0 评论