设计模式之大话西游

    8年前深究设计模式,现如今再次回锅~ 还是大话设计模式 这本书还是可以的

    大话西游经典的台词:“曾经有一份真挚的爱情摆在我面前,我没有珍惜,等我失去的时候,我才后悔莫及,人世间最痛苦的事莫过于此。如果上天能够给我一个再来一次的机会,我会对那个女孩子说三个字:我爱你。如果非要在这份爱上加上一个期限,我希望是一万年!” 当然这是强蹭流量 没有关系

设计模式最重要的看懂那几个线:

https://www.cnblogs.com/itc0z0sti/p/3309584.html 

简单工厂 

super调用 factory中createCashAccept具体:

   case "":

   case "":

   default: 

策略:封装变化 匹配女神

单例 

spring  enum 基础之重蹈覆辙-CSDN博客

代理

调用代理类 代理类调用真实对象方法 两者都实现了一个接口

原型:不知不觉ing 注意

浅克隆:实现cloneable接口 重写clone方法,引用类型 只克隆引用 同一块地址

深克隆:基本数据类型和引用类型指向的对象都会被复制,真正的复制一份,重新开辟空间保存

  重写clone,clone嵌套clone,对象 引用类型变量的类 均实现cloneable接口

  序列化流:对象 引用对象都序列化

首先创建ByteArrayOutputStream内存数组输出流,创建ObjectOutputStream序列化流,并传入内存数组输出流,使用序列化流的writeobject方法将要序列化的对象写入内部数组中
创建一个ByteArrayInputStream内存数组读取流,传入一个读取数据的数组,这个数组通过内存数组输出流的toByteArray方法获得,这个数组里面的数据其实就是已经被序列化成二进制数据的对象
最后创建一个ObjectInputStream反序列化流,并传入内存数组读取流,使用反序列化流的readobject方法将数组中的对象的信息,反序列化出来。
反序列化出的对象就是一个新的对象,完成了深克隆。
当然还可以固定要被序列化对象的版本号,定义一个private static final long serialVersionUID
注意静态的成员和transient关键字修饰的成员不能被序列化

  开源工具:json  spring的BeanUtils  Cglib的BeanCopier 

Java中的深克隆和浅克隆的原理及三种方式实现深克隆_浅克隆和深克隆的实现-CSDN博客

适配器

 

装饰器

 

HttpServletResponseWrapper

 桥接 抽象实现分离

外观

享元 缓存共享对象

外部对象随环境改变而改变 / 内部对象可共享

组合 对象组合成层次结构

模板

命令

责任链

FilterChain    Filter

状态

对象行为

观察者

 当更改一个对象的状态可能需要更改其他对象,并且实际的对象集事先未知或动态更改时

JDK:java.util.Observable

Spring:org.springframework.context.ApplicationListener

中介者

迭代器

简化聚合,定义迭代器 很少用

访问者

 扩展   复用

备忘录

解释器

相关推荐

  1. 设计模式设计原则

    2024-04-14 18:06:03       40 阅读
  2. 设计模式简介原则

    2024-04-14 18:06:03       38 阅读
  3. 设计原则(一句总结)

    2024-04-14 18:06:03       64 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-14 18:06:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-14 18:06:03       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-14 18:06:03       82 阅读
  4. Python语言-面向对象

    2024-04-14 18:06:03       91 阅读

热门阅读

  1. 喊7游戏 python版

    2024-04-14 18:06:03       33 阅读
  2. Unity自定义框架(2)-----------事件中心

    2024-04-14 18:06:03       38 阅读
  3. ucore 实验物理内存管理篇

    2024-04-14 18:06:03       32 阅读
  4. React state用法 异步总结

    2024-04-14 18:06:03       27 阅读
  5. PV和uv的区别

    2024-04-14 18:06:03       42 阅读
  6. 力扣经典150题第二十二题:Z 字形变换

    2024-04-14 18:06:03       35 阅读
  7. Qt Designer 控件箱中的控件介绍及布局比列分配

    2024-04-14 18:06:03       41 阅读
  8. 基于springboot的多维分类知识管理系统源码数据库

    2024-04-14 18:06:03       25 阅读
  9. 常用镜像地址:pip,yum,jar,linx镜像,apache系列等等

    2024-04-14 18:06:03       30 阅读
  10. okcc呼叫中心人工智能行业2024年市场发展分析

    2024-04-14 18:06:03       29 阅读
  11. 167. 两数之和 II - 输入有序数组

    2024-04-14 18:06:03       33 阅读