![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 74
设计模式学习以及应用
pmc0_0
想做一个优秀的Java后端开发工程师
展开
-
职责链模式(responsibilitychain)
一个人请假,根据请假天数的不同,应该由不同的人处理。原创 2022-07-31 11:52:20 · 56 阅读 · 0 评论 -
命令模式(Command)
命令模式比较简单,但是在项目中非常频繁地使用,因为它的封装性非常好,把请求方(Invoker)和执行方(Receiver)分开了,扩展性也有很好的保障,通用代码比较简单。先看一下Receiver类。该角色就是干活的角色,命令传递到这里是应该被执行的,具体到我们上面的例子中就是弓箭手和冲锋士兵的两个实现类。其实就是通过负责人发布命令,命令关联着具体的执行者,让执行者去执行自己的行为。我们要把将军(请求方)和士兵(执行方)分离开。接收到命令,并执行命令。需要执行的所有命令都在这里声明。...原创 2022-07-30 22:53:43 · 124 阅读 · 0 评论 -
中介者模式(Mediator)
中介者作为三个模块的交流核心,每个模块之间不再相互交流,要交流就通过中介者进行。每个模块只负责自己的业务逻辑,不属于自己的则丢给中介者来处理,简化了各模块之间的耦合关系。我们从这个示意图上可以看出,三个模块是相互依赖的。采购部门要采购IBM的电脑,它根据以下两个要素来决定采购数量。...原创 2022-07-30 12:16:15 · 128 阅读 · 0 评论 -
享元模式(Flyweight)
设计模式原创 2022-06-13 18:49:57 · 72 阅读 · 0 评论 -
策略模式(Strategy)
文章目录策略模式结构案例实现优缺点优点:缺点:使用场景策略模式该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。结构抽象策略(strategy)类:这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所有的具体策略类所需的接口。具体策略((concrete strategy)类:实现了抽象策略定义的接口,提供具体原创 2021-10-18 23:30:15 · 126 阅读 · 0 评论 -
模板方法模式(Template Method)
文章目录模板方法模式模板方法结构主要角色:抽象类(Abstract class)具体子类(Concrete Class)︰案例实现优缺点优点:缺点:JDK源码解析模板方法模式模板方法模式属于行为型模式,定义:一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。例如:去银行办理业务一般要经过以下4个流程:取号、排队、办理具体业务、对银行工作人员进行评分等,其中取号、排队和对银行工作人员进行评分的业务对每个客户是一样的,可以在父类中实原创 2021-10-18 13:50:03 · 87 阅读 · 0 评论 -
构建者模式(Builder)
文章目录构建者模式构建者结构类图代码实现代码重构建造型设计模式对比工厂方法模式vs建造者模式抽象工厂模式vs建造者模式构建者模式分离复杂对象的构建和表示同样的构建过程可以创建不同的表示分离了部件的构造(由Builder来负责)和装配(由Director负责)。从而可以构造出复杂的对象适用于︰某个对象的构建过程复杂的情况构建者结构抽象建造者类(Builder):这个接口规定要实现复杂对象的哪些部分的创建,并不涉及具体的部件对象的创建具体建造者类(ConcreteBuilder):实现原创 2021-09-28 12:58:34 · 184 阅读 · 0 评论 -
观察者模式(Observer)
文章目录设计模式分类观察者模式天气预报站需求代码实现核心接口管理者观察者测试设计模式分类创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。观察者模式观察者模式:对象之间多对一依赖的一种设计方案,被依赖的对象为原创 2021-09-24 19:08:42 · 80 阅读 · 0 评论 -
单例模式(singleton)
文章目录单例模式解释形式饿汉式(静态常量)优点缺点饿汉式(静态代码块)优缺点和上面一样懒汉式(线程不安全)优点缺点懒汉式(线程安全,同步方法)优缺点分析懒汉式(线程安全,同步代码块)结论双重检查优点静态内部类优点枚举优点使用场景单例模式解释单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。形式饿汉式(静态常量)饿汉式(静态代码块)懒汉式(线程不安全)懒汉式(线程安全,同步方法)懒汉式(线程安全,同原创 2021-07-02 12:45:15 · 144 阅读 · 0 评论 -
代理模式(Proxy)
文章目录代理模式解释优点可被代理的对象形式代理模式示意图静态代理接口被代理对象(目标对象)代理对象测试客户类结果优缺点动态代理应用案例代理模式解释代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象优点可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。可被代理的对象远程对象创建开销大的对象需要安全控制的对象形式静态代理动态代理(JDK代理,接口代理)Cglib代理(可以在内存动态的创建对象,而不需要实现接口,他是属于原创 2021-07-01 18:56:06 · 334 阅读 · 0 评论 -
工厂模式(Factory)
工厂模式原理:通过反射机制创建对象,这样我们在需求改变的时候无需修改源代码简单工厂模式实体类:public class Animal { public void say(){ System.out.println("动物叫声"); }}public class Cat extends Animal{ @Override public void say(){ System.out.println("miaomiao");原创 2021-03-14 22:37:25 · 128 阅读 · 0 评论