随笔分类 - 设计模式
收录23个java实现的设计模式
摘要://20200202 写在前面:刚期末考试完,考了面向对象,里边儿有23个设计模式,我寻思着考完挨个儿实现一下,本文实现解释器模式 解释器模式核心思想 构建语法树,然后将输入的值根据语法树执行 程序源代码: 此处实现一个加减运算的解释器,输入算式,输入参数,输出结果 import java.util
阅读全文
摘要:// 20210202 写在前面:刚期末考试完,考了面向对象,里边儿有23个设计模式,我寻思着考完挨个儿实现一下,本文实现责任链模式 责任链模式核心思想 如其字面意思,一个链式结构,通俗来讲,就是每一层元素只有两个选择 权限够,直接通过请求,并作出相应动作 权限不够,抛给上级 程序源代码 此处实现公
阅读全文
摘要:// 20210202 写在前面:刚期末考试完,考了面向对象,里边儿有23个设计模式,我寻思着考完挨个儿实现一下,本文实现访问者模式 访问者模式核心思想 网上找的帖子都说访问者模式是最复杂的一个模式,但是看完懂了之后感觉也没有多复杂,但是模式之中的成分关系比较抽象 总的来说,核心思想就是让数据结构和
阅读全文
摘要://20210202 写在前面:刚期末考试完,考了面向对象,里边儿有23个设计模式,我寻思着考完挨个儿实现一下,本文实现迭代器模式 迭代器模式核心思想: 创造一个黑盒,盒子里有添加进去的所有元素,取元素时只能根据黑盒上的接口按照加入顺序一个一个取出,删除也要遍历到相应位置才能删除,用户不需要知道黑盒
阅读全文
摘要://20210129 写在前面:刚期末考试完,考了面向对象,里边儿有23个设计模式,我寻思着考完挨个儿实现一下,本文实现命令模式 中介者模式核心思想 设置一个中介者,来通信所有相关的类 举例:MVC模型,Controller(C)是Model(M)和View(V)的中介,负责通信二者,解读消息 程序
阅读全文
摘要://20210129 写在前面:刚期末考试完,考了面向对象,里边儿有23个设计模式,我寻思着考完挨个儿实现一下,本文实现命令模式 ###命令模式核心思想: 将操作封装成一个对象,请求者发送请求给包装有命令的接受者,然后接受者执行相应操作,用户不需要知道操作如何执行的,只需要发送请求即可 程序源代码
阅读全文
摘要://20210127 写在前面:刚期末考试完,考了面向对象,里边儿有23个设计模式,我寻思着考完挨个儿实现一下,本文实现模板模式 模板模式核心思想: 如果完成某件事的步骤就那么几个,那么我们就可以定义一个模板专门用于完成某件事情,就好像实现一个框架,子类往里边填充步骤的具体内容就行 举例:做成一道菜
阅读全文
摘要://20210124 写在前面:刚期末考试完,考了面向对象,里边儿有23个设计模式,我寻思着考完挨个儿实现一下,本文实现观察者模式 观察者模式核心思想: 有很多观察者,只有一个被观察者,当被观察者做出什么举动时,所有的观察者都会被通知到,而和被观察者无关的则不会被通知到(被观察者有一个列表,列表中包
阅读全文
摘要://20210124 写在前面:刚期末考试完,考了面向对象,里边儿有23个设计模式,我寻思着考完挨个儿实现一下,本文实现策略模式 策略模式核心思想 设置一个算法父类,然后实现多种不同方法子类,用户只用选择背景,以及背景中的算法,就可以实现不同功能 程序源代码: /** * 活动父类 */ publi
阅读全文
摘要://20210122 写在前面:刚期末考试完,考了面向对象,里边儿有23个设计模式,我寻思着考完挨个儿实现一下,本文实现状态模式 状态模式核心思想: 符合迪米特原则,将大量分支语句变成类的形式 程序源代码: 此处实现一个电梯的状态转换 //电梯状态抽象类 public abstract class
阅读全文
摘要://20210122 写在前面:刚期末考试完,考了面向对象,里边儿有23个设计模式,我寻思着考完挨个儿实现一下,本文实现备忘录模式 备忘录模式核心思想 类似游戏存档,将对象前一个时间点的状态保存下来,以便出现情况进行回滚和撤销操作 缺点:浪费资源 优点:保证系统安全,出现突发情况可以减少数据丢失 程
阅读全文
摘要://20210121 写在前面:刚期末考试完,考了面向对象,里边儿有23个设计模式,我寻思着考完挨个儿实现一下,本文实现组合模式 组合模式核心思想 类似文件夹的概念,构件树形结构,树形有叶子结点和文件夹结点,文件夹结点可以包含叶子结点和文件夹结点 分为两种模式 - 透明型:所有节点构造全部相同,但是
阅读全文
摘要://20210120 写在前面:刚期末考试完,考了面向对象,里边儿有23个设计模式,我寻思着考完挨个儿实现一下,本文实现桥接模式 桥接模式核心思想 实现多对多模式,比如很多品牌的汽车要跑很多种类的路,汽车的品牌和路的种类是多对多的关系,如果一一映射实现的话,会非常浪费资源,不如创建一个虚拟的桥的概念
阅读全文
摘要://20210120 写在前面:刚期末考试完,考了面向对象,里边儿有23个设计模式,我寻思着考完挨个儿实现一下,本文实现适配者模式 核心思想 如果在一个类中频繁创建内容相同的对象,则会使内存占用很高,如果在产品中使用此方法,则会占用大量内存,如果将内容相同的对象共享,则能够节省很多资源,享元模式应运
阅读全文
摘要://20210120 写在前面:刚期末考试完,考了面向对象,里边儿有23个设计模式,我寻思着考完挨个儿实现一下,本文实现适代理模式 核心思想 创建一个代理类来面对客户,而非委托方直接面对客户,代理类对客户类为一对一,代理类可以在委托类基础上附加额外功能,但是主要业务工作哦还是交给委托方,只不过科普不
阅读全文
摘要://20210119 写在前面:刚期末考试完,考了面向对象,里边儿有23个设计模式,我寻思着考完挨个儿实现一下,本文实现适配者模式 核心思想 构造一个适配器类,该类有原本的功能,也能糅合其他类的功能,最终通过一个类实现多个类的功能(这些类之间原本之间并不能通信,而适配器为多个类提供接口,然后统一输出
阅读全文
摘要://20210118 写在前面:刚期末考试完,考了面向对象,里边儿有23个设计模式,我寻思着考完挨个儿实现一下,本文实现外观模式 外观模式: 给客户提供一个平台,客户不需要知道平台内的东西具体运行逻辑,只需要知道它们存在以及知道如何使用他们即可 实现源代码如下: //平台代码 public clas
阅读全文
摘要://20210117 写在前面:刚期末考试完,考了面向对象,里边儿有23个设计模式,我寻思着考完挨个儿实现一下,本文实现创建者模式 创建者模式 核心思想:一步一步构建出一个完整的对象,就拿电脑举例,有的电脑有水冷,有的电脑没有水冷,那么我只想有一个电脑创建类,那水冷选项就必须是可选择的而非强制的,这
阅读全文
摘要://20210117 写在前面:刚期末考试完,考了面向对象,里边儿有23个设计模式,我寻思着考完挨个儿实现一下,本文实现单例模式 单例模式概念: 私有化构造器,让一个类只能拥有一个实例化对象,并创建静态方法用以获取该对象 饿汉式 无论是否调用,都先自己创建对象 源代码如下: /** * hunger
阅读全文
摘要://20210117 写在前面:刚期末考试完,考了面向对象,里边儿有23个设计模式,我寻思着考完挨个儿实现一下,本文实现原型模式 原型模式 核心思想:将原有对象完整拷贝出来,然后放进另一个新创的对象里,以达到复制的目的(因为java中如果直接赋值,只是引用,内存中数据改变之后引用的所有对象都会改变,
阅读全文