IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 16.Java设计模式 -> 正文阅读

[Java知识库]16.Java设计模式

目录

第一章 创建型模式

单例模式:

饿汉式:天然的线程安全,效率高。

懒汉式:

双重检测锁模式:

静态内部类:

枚举单例:

反射破解除枚举单例以外的单例模式:

反序列化破解除枚举单例以外的单例模式:

工厂模式:

简单工厂模式:

工厂方法模式:

简单工厂模式与工厂方法模式的对比:

抽象工厂模式:

工厂模式总结:

建造者模式:

原型模式:

浅克隆:

深克隆:

使用序列化和反序列化实现深克隆:

第二章 结构型模式

适配器模式:

类配器模式:

对象适配器模式:

代理模式:

静态代理:

动态代理:

桥接模式:

组合模式:

装饰模式:

IO流的设计是一个典型的装饰模式:

外观模式:

享元模式:

第三章 行为型模式

责任链模式:

迭代器模式:

中介者模式:

命令模式:

解释器模式:

访问者模式:

策略模式:

模板方法模式:

状态模式:

观察者模式:

备忘录模式:




第一章 创建型模式


单例模式:


作用:保证一个类只有一个实例,并且提供一个访问该实例的全局访问点。


常见的应用场景:



单例模式的优点:



饿汉式:天然的线程安全,效率高。




懒汉式:



双重检测锁模式:



静态内部类:




枚举单例:


枚举元素本身就是单例。但是他没有延时加载。可以防止反射和反序列化漏洞。



反射破解除枚举单例以外的单例模式:



防止的方法:



反序列化破解除枚举单例以外的单例模式:



防止的方法:



反序列化时自动调用readResolve方法。


工厂模式:




简单工厂模式:






工厂方法模式:


它与简单工厂模式最大的不同在于简单工厂模式只有一个工厂类,而工厂方法模式有一组实现了相同接口的工厂类。它符合开闭原则,当需要扩展的时候,不用修改已有代码,只需要增加。





简单工厂模式与工厂方法模式的对比:



抽象工厂模式:



工厂模式总结:



建造者模式:




原型模式:



在使用new产生新对象比较耗时的情况下,我们可以使用clone来进行新对象的创建。



浅克隆:




深克隆:


深克隆其实就是将原对象下面的属性也进行克隆。



使用序列化和反序列化实现深克隆:




第二章 结构型模式


结构型模型的核心作用是从程序的结构上实现松耦合,从而可以扩大整体的类结构,用来解决更大的问题。


适配器模式:



类配器模式:




对象适配器模式:



代理模式:


通过代理,控制对对象的访问。可以详细控制访问某个类或对象的方法,在调用这个方法前做前置处理,调用这个方法后做后置处理,即AOP(Aspect Oriented Programming面向切面编程)的微观实现,从而实现将统一流程代码放到代理类中处理。




静态代理:





动态代理:


动态代理相比于静态代理的优点是:抽象角色中(接口)声明的所有方法都被转移到调用处理器一个集中的方法中处理没这样,我们可以更加灵活和统一地处理众多的方法。





桥接模式:








组合模式:


组合模式适用于:将部分和整体的关系用树形结构来表示,从而使客户端可以使用统一的方式处理部分对象和整体对象。









装饰模式:









IO流的设计是一个典型的装饰模式:




缺点是会产生很多的小对象,大量小对象占据内存,一定程度上影响性能,且装饰模式易出错,调试排查比较麻烦。



外观模式:




享元模式:









测试:



第三章 行为型模式


责任链模式:


将能够处理同哟类请求的对象连成一条链,所提交的请求沿着链传递,链上的对象逐个判断是否有能力处理该请求,如果能就处理,否则就传递给链的下一个。










迭代器模式:







测试:



中介者模式:









命令模式:


将一个请求封装为一个对象,从而使我们可用不同的请求对客户进行参数化,对请求排队或者记录请求日志,以及支持可撤销的操作,也称为“动作Action模式”,“事务transatcion模式”。






解释器模式:




访问者模式:



策略模式:


对应于解决某一个问题的一个算法族,允许用户从该算法族中任选一个算法解决某一问题,同事可以方便地更换算法或者新增算法,并且由客户端决定调用哪个算法。







模板方法模式:







状态模式:






观察者模式:










备忘录模式:



核心就是保存某个对象内部状态的拷贝,这样以后就可以将该对象恢复到原先的状态。








  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-10-01 16:41:08  更:2021-10-01 16:41:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 19:09:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码