![](https://img-blog.csdnimg.cn/23ba045f55074554b4d17ff5a5912dfe.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
设计模式
使用模式使用,gitee地址
https://gitee.com/tian_xiong/java-learning-documents
tx_xtt
全站
展开
-
综合案例 计算器(模板+命令+责任链)
一个简单的计算器可以分为3部分。1是校验部分,校验表达式的合法性,这一部分可以通过这责任链来依次校验;2是表达式的解析部分,将表达式中的数据和符号拆分出来;3是运算部分,这一部分直接使用之前写的命令模式的相关代码。原创 2024-01-16 15:50:03 · 462 阅读 · 1 评论 -
16 命令行模式
对于调用者来说,命令的具体执行者是不可见的,他接触到的是一个个命令,命令和命令的执行者都可以非常方便的扩展。将行为的执行与与行为的调用通过命令分离,行为的的调用者不需要知道具体是哪个类执行的,他们之间通过命令连接。命令的执行者(接口)命令的执行者(实现)原创 2024-01-15 22:11:09 · 421 阅读 · 0 评论 -
15 责任链模式
case1:一个对象不知道要被谁处理,在一个方法里面做判断显得过于冗余,这个时候就可以使用责任链模式,直接将对象丢进责任链中,传递到对应的处理器中就会进行处理。case2:可以对一个对象进行一系列加工处理,责任链上的每一个节点都可以看着是处理对象的一个步骤。case3:还可以进行校验,上一个校验步骤根据校验结果判断是否传递到下一个校验步骤。原创 2024-01-10 20:18:35 · 740 阅读 · 1 评论 -
14 代理模式
代理模式,最后一个结构型模式 主要目的是控制对象的访问,比如防火墙。通过一个代理层不让用户直接访问原始对象,访问代理对象。所有的操作都有代理对象来进行。这样在执行原有逻辑之前就可以进行一些处理,之后也可以进行一些处理。类如Spring 的 AOP。原创 2024-01-09 12:05:36 · 307 阅读 · 0 评论 -
13 享元模式
享元模式 用来降低对象的创建数量,例如一些工具方法,spring中的单例, getBean方法获取单例就是一个典型的享元模式运用,先判断在系统内存中是否存在该对象, 如果不存在就创建该对象,放入内存中并返回,如果存在则直接返回内存中存在的对象。String 也是享元模式的运用,String 都是存在于字符串常量池中,有就是直接获取, 没有就创建并放入字符串常量池中。原创 2024-01-09 10:28:19 · 813 阅读 · 0 评论 -
12 门面模式(外观模式)
作为系统门面,编排内部模块关系,对外暴露接口,降低外部系统的使用成本。外部系统使用本系统不需要知道内部细节,可以直接使用门面进行相应的操作。原创 2024-01-09 09:37:00 · 411 阅读 · 0 评论 -
11 装饰器模式
装饰器模式 在不改变原有职责的条件下,动态的增加原有类的职责 优点,相较于继承,可以避免子类数量的膨胀。且可以相互嵌套,更加灵活。原创 2024-01-08 20:30:30 · 354 阅读 · 0 评论 -
10组合模式
使用者不必关心使用的对象,把他们当成一个整体,以相同的方式处理。原创 2024-01-08 11:41:20 · 490 阅读 · 0 评论 -
09 过滤器模式
用来过滤数据,通过一个或多个定义过滤规则,窜起来过滤原始数据。原创 2024-01-08 10:16:03 · 434 阅读 · 0 评论 -
08 桥接模式
桥接模式 使用场景,存在多个纬度的变化,每个纬度都需要进行扩展 使用继承的话会导致子类发生裂变,数量极具膨胀。使用桥接模式的话这能避免这种现象。比如我们由一个汽车,他由许多的部件构成,比如外形、颜色 我们有2个接口,一个外形接口,一个颜色接口,每次实现都继承这两个接口。外形每多一个,就会多颜色数量的车辆。总的类型数量是 外形的数量 * 颜色的数量 实现类的数量也是以上那么多。而使用桥接模式 , 总的数量不变,但是实现类的数量却变为了 外形的数量 + 颜色的数量。原创 2024-01-07 23:46:21 · 513 阅读 · 1 评论 -
07 结构型模式-适配器模式
适配器模式 作用:桥梁 , 目标功能是一致的,实现不同 但 兼容。将一个接口转换为另一个系统的接口,对接系统。demo 简介 系统存在一个老旧的接口,他的功能运动模式是跑,现在是需要能自由的跑。原来的接口就不能满足现在的需求了,可以通过适配器实现原来跑的接口, 该接口持有新功能的引用。原创 2024-01-07 22:23:47 · 439 阅读 · 1 评论 -
06原型模式,最后一个创建型模式
原型模式 用来创建重复的对象 涉及对象的拷贝,浅拷贝(基本数据类型+String)可以直接被拷贝, 其他类型需要自己实现。原创 2024-01-06 20:51:06 · 743 阅读 · 2 评论 -
05 建造者模式
建造者模式 典型的例子就是 lombok 的 builder,将bean对象属性的赋值。简单使用构造函数传递参数的话,虽然可以定义多个构造函数, 但会造成过多繁琐的代码,切参数位置的交换都是一个新的构造函数。参数过少就没必要使用建造者模式。建造者模式的主要作用就是将一个复杂的对象的构建过程简单话, 变成一个个的小步骤。面对多变的参数选择也能够从容应对。原创 2024-01-06 17:15:44 · 374 阅读 · 1 评论 -
04 单例模式
单例模式的主要目的就是系统中有同一个类需要被反复使用,避免每次使用都重新创建和使用完之后就销毁,就只创建一次,每次使用都是用的同一个对象。以下demo是常见的单例模式的简单实现以及效率对比,比较推荐使用静态内部类。单例模式的实现在java中也是多种多样。原创 2024-01-06 15:11:00 · 592 阅读 · 1 评论 -
03 抽象工厂
抽象工厂, 工厂的根源在一个顶层接口 GeneralFactory 通过实现顶层接口来创建具体的产品生产工厂。GeneralFactory 只依赖产品的抽象层, 具体的产品选择由具体的生产工厂决定。原创 2024-01-06 10:47:02 · 347 阅读 · 1 评论 -
02 工厂模式
工厂的实现也和产品一样,在子类实现,更加灵活,符合开闭原则,依赖倒置原则。原创 2024-01-05 22:10:54 · 321 阅读 · 0 评论 -
设计模式-简单工厂模式 01
所有同类产品都继承同一个接口,需要使用产品的类不需要自己创建产品,只需要通过工厂方法,传入对应的参数即可获得对应的产品,创建过程由工厂方法封装,无需知道细节。原创 2024-01-05 17:50:49 · 364 阅读 · 1 评论