![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 85
qq_40242512
喜欢唱跳rap篮球,还有Java!!!
展开
-
一篇文章带你搞懂装饰者模式
1、装饰者模式 装饰者模式是指在无需改变原有类及类的继承关系的情况下,动态扩建一个类的功能。通过装饰者来包裹真实的对象,并动态地向对象添加或者撤销功能。动态的将新功能附加到对象上。在对象功能扩展方面,它比继承更有弹性,装饰者模式也体现了开闭原则(ocp)。Component:抽象组件,定义业务需要实现的抽象方法ConcreteComponent:具体组件,继承(或实现)Component,定义主体对象Decorator:装饰者(可以为具体实现类或抽象类),实现Component接口并聚合其对象原创 2021-02-23 11:31:12 · 112 阅读 · 0 评论 -
一篇文章带你搞懂观察者模式
文章目录观察者模式1、目的2、观察者和被观察者关系3、UML4、代码实现4.1、demo:天气4.2、demo:数值转换观察者模式1、目的 观察者模式使得一个对象的状态改变时,已经注册的其它依赖对象能够观察到这一改变。2、观察者和被观察者关系 对象之间一对多的一种设计方案,被依赖的对象为被观察者,依赖的对象为Observer(观察者)。当被观察者的状态发生变化,所有的依赖对象Observer都将被通知,属于行为型模式。3、UMLSubject:通常是由类实现的可观察的接口regis原创 2021-02-20 16:19:34 · 1071 阅读 · 0 评论 -
一篇文章带你搞懂单例模式
文章目录1、单例模式2、懒汉式2.1、初始版本2.2、同步方法synchronized保证线程安全2.3、同步代码块2.4、DCL懒汉式(双重检测锁模式)⭐⭐⭐2.5、静态内部类⭐⭐3、深入分析DCL3.1、DCL真的安全吗3.2、DCL优化3.3、DCL指令重排问题4、安全的单例模式4.1、枚举类实现单例4.2、枚举类如何实现单例5、总结1、单例模式 单例模式:采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且只能通过该类提供的一个静态方法取得其对象实例。饿汉式:在类加载的原创 2020-08-20 20:17:50 · 141 阅读 · 0 评论 -
一篇文章带你搞懂迭代器模式
迭代器模式1、概要 在面向对象编程中,迭代器模式是一种很常见的设计模式:它可以让用户透过特定的接口巡访容器中的每一个元素而不用了解底层的实现。就好像我们在使用集合的时候并不需要关注其底层实现是数组,链表或是其它数据结构,我们可以使用相同的方式去遍历集合中的元素而不暴露其内部结构,是不是感觉迭代器模式就是为了容器而生的! 目的:迭代器模式提供了一种顺序遍历聚合对象元素而不用暴露其内部结构的方式2、实现 从类图可以看到迭代器的各个角色:主要是基于两个接口,然后通过其成对的实现类来实现,因此每一原创 2020-07-01 19:45:49 · 407 阅读 · 0 评论 -
一篇文章带你搞懂代理模式
一、前言 代理模式是一种很常见的设计模式,在多线程、aop、远程代理等场景中均有体现,代理在我们的生活中也是很随处可见的。代理模式即为一个真实对象提供了一个代理对象,这个代理除了拥有真实对象的功能外,还能在不改变真实对象的情况下进行功能的增强且也能达到安全控制的效果。1、代理分类静态代理动态代理基于接口:JDK代理基于类:Cglib代理2、代理角色AbstractSubject(抽象角色):真实角色和代理角色都实现的接口或抽象类RealSubject(真实角色):真正提供功原创 2020-06-09 18:46:45 · 1089 阅读 · 1 评论