设计模式之大话西游

news2024/11/19 19:43:41

    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

中介者

迭代器

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

访问者

 扩展   复用

备忘录

解释器

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1594114.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

内网通如何去除广告,内网通免广告生成器

公司使用内网通内部传输确实方便!但是会有广告弹窗推送!这个很烦恼!那么如何去除广告呢! 下载: 链接:https://pan.baidu.com/s/1CVVdWexliF3tBaFgN1W9aw?pwdhk7m 提取码:hk7m ID:…

大数据产品有哪些分类?各类里知名大数据产品都有哪些?

随着互联网技术的持续进步和全球数字化转型的推进,我们正处于一个数据爆炸的时代。在这样的大背景下,大数据已经逐渐崭露头角,成为了推动各行各业发展的关键因素和核心资源。大数据不仅仅是指数据的规模巨大,更重要的是它蕴含的价…

消除 BEV 空间中的跨模态冲突,实现 LiDAR 相机 3D 目标检测

Eliminating Cross-modal Conflicts in BEV Space for LiDAR-Camera 3D Object Detection 消除 BEV 空间中的跨模态冲突,实现 LiDAR 相机 3D 目标检测 摘要Introduction本文方法Single-Modal BEV Feature ExtractionSemantic-guided Flow-based AlignmentDissolved…

每日一题(leetcode238):除自身以外数组的乘积--前缀和

不进阶是创建两个数组&#xff1a; class Solution { public:vector<int> productExceptSelf(vector<int>& nums) {int nnums.size();vector<int> left(n);vector<int> right(n);int mul1;for(int i0;i<n;i){mul*nums[i];left[i]mul;}mul1;for…

阿迪Akamai 逆向 第二部分

声明&#xff1a; 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01;wx a15018601872 …

利用vip.item_get API接口,唯品会电商发展再上新台阶,VIP商品详情尽在掌握

唯品会作为中国领先的折扣电商平台&#xff0c;一直致力于为消费者提供高品质的商品和优质的服务。近年来&#xff0c;随着技术的不断发展和电商行业的竞争加剧&#xff0c;唯品会不断寻求创新&#xff0c;以满足消费者的多样化需求。在这个过程中&#xff0c;vip.item_get API…

深入理解大型项目服务器部署与数据库优化策略

我们先了解一下大概的数据量&#xff1a; 复杂的数据库语句&#xff1a;Mysql每秒大概可以执行100-200个 一台服务器就可以做到每秒几十个并发&#xff08;配置&#xff1a;4核8G&#xff09; 一万块钱的服务器的配置&#xff1a;16核32g内存4T硬盘 如果是微型的服务&#…

Elasticsearch中父子文档的关联:利用Join类型赋予文档的层级关系

码到三十五 &#xff1a; 个人主页 心中有诗画&#xff0c;指尖舞代码&#xff0c;目光览世界&#xff0c;步履越千山&#xff0c;人间尽值得 ! Elasticsearch是一个强大的搜索引擎&#xff0c;它提供了丰富的功能来满足复杂的搜索需求。其中&#xff0c;父子索引类型的join功…

离谱!奇安信人事总监透露:Web安全不会岗位这些就别投简历了

有人的地方就有江湖&#xff0c;有互联网安全的地方&#xff0c;就必然有Web安全工程师的身影。但其实Web安全是近几年才备受关注的&#xff0c;从事这方面的专业人员并不多&#xff0c;这就导致整个市场Web安全研究员的供求严重不平衡。 这种供求不平衡直接反映在Web安全研究…

Windows沙盒:sandboxie-plus工作原理及安装使用指导

文章目录 1、简介2、工作原理3、主要功能4、安装4.1、下载安装文件4.2、运行安装程序4.3、选择安装路径 5、使用方法6、总结 1、简介 Sandboxie是一款安全软件&#xff0c;也被称为沙箱。它的主要功能是创建一个隔离的虚拟环境&#xff0c;用户能够在其中运行或安装应用程序&a…

mmdetection模型使用mmdeploy部署在windows上的c++部署流程【详细全面版】

0. 前置说明: 该文档适用于:已经使用mmdetection训练好了模型,并且完成了模型转换。要进行模型部署了。 1. 概述 MMDeploy 定义的模型部署流程,如下图所示: 模型转换【待撰写,敬请期待…】 主要功能是:把输入的模型格式,转换为目标设备的推理引擎所要求的模型格式…

973: 统计利用先序遍历创建的二叉树叶结点的个数

解法&#xff1a; #include<iostream> #include<queue> using namespace std; // 定义二叉树结点 struct TreeNode {char val;TreeNode* left;TreeNode* right;TreeNode(char x) :val(x), left(NULL), right(NULL) {}; }; // 先序递归遍历建立二叉树 TreeNode* bu…

C++11---多线程

看前须知&#xff1a;如果对线程不了解的&#xff0c;可以先去看Linux---多线程(上)&#xff0c;(下)这两篇文章 那里主要讲了线程的一些基础概念和底层相关理解&#xff0c;对我们阅读这篇文章会有所帮助 一、thread --- 线程 1、thread相关接口介绍 在C11之前&#xff0c;涉…

汇编语言程序设计-1-绪论

1. 绪论 文章目录 1. 绪论1.1 导学1.2 为什么要学汇编语言1.3 由机器语言到汇编语言1.4 计算机的组成1.5 内存的读写与地址空间1.6 汇编语言实践环境搭建 参考视频&#xff1a;烟台大学贺利坚老师的网课《汇编语言程序设计系列专题》&#xff0c;或者是B站《汇编语言程序设计 贺…

MybatisPlus实现数据权限隔离

引言 Mybatis Plus对Mybatis做了无侵入的增强&#xff0c;非常的好用&#xff0c;今天就给大家介绍它的其中一个实用功能&#xff1a;数据权限插件。 数据权限插件的应用场景和多租户的动态拦截拼接SQL一样。建议点赞收藏关注&#xff0c;方便以后复习查阅。 依赖 首先导入M…

c/c++普通for循环学习

学习一下 for 循环的几种不同方式&#xff0c;了解一下原理及差异 完整的测试代码参考 GitHub &#xff1a;for 循环测试代码 1 常用形态 对于 for 循环来说&#xff0c;最常用的形态如下 for (表达式1; 表达式2; 表达式3) {// code }流程图如下&#xff1a; 编写测试代码…

【随笔】Git 高级篇 -- 项目里程碑 git tag(二十)

&#x1f48c; 所属专栏&#xff1a;【Git】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢迎大…

12 Php学习:魔术常量

PHP魔术常量 PHP 向它运行的任何脚本提供了大量的预定义常量。 不过很多常量都是由不同的扩展库定义的&#xff0c;只有在加载了这些扩展库时才会出现&#xff0c;或者动态加载后&#xff0c;或者在编译时已经包括进去了。 有八个魔术常量它们的值随着它们在代码中的位置改…

Java——类和对象

目录 一.类定义和使用 1.简单认识类 2.类的定义格式 3.注意事项 二.课堂练习 1.定义一个狗类 2.定义一个学生类 3.注意事项&#xff1a; 三.类的实例化 1.什么是实例化 2.注意事项 3.类和对象的说明 四.this引用 1.为什么要有this引用 2.什么是this引用 五.对…

MySQL进阶二

目录 1.使用环境 2.排序窗口函数 3.聚合窗口函数 1.使用环境 数据库&#xff1a;MySQL 8.0.30 客户端&#xff1a;Navicat 15.0.12 接续MySQL进阶一&#xff1a; MySQL进阶一-CSDN博客文章浏览阅读452次&#xff0c;点赞9次&#xff0c;收藏4次。MySQL进阶操作一。https…