设计模式总结简版 原创 shenhao1 2021-08-14 09:50:16 ©著作权 文章标签 设计模式 思维导图 java 其他 文章分类 代码人生 ©著作权归作者所有:来自51CTO博客作者shenhao1的原创作品,请联系作者获取转载授权,否则将追究法律责任 设计模式总结简版 自己制作的java版设计模式学习的思维导图,免费分享,每个知识点中皆有详细的博文,内含详细的解释和代码思维导图链接 赞 收藏 评论 分享 举报 上一篇:基本概念:程序、进程、线程 下一篇:注解方式实现Servlet 提问和评论都可以,用心的回复会被更多人看到 评论 发布评论 全部评论 () 最热 最新 相关文章 设计模式总结(一):创建型模型 @TOC创建型模式1.单例模式单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意:1、单例类只能有一个实例。2、单例类必须自己创建自己的 工厂类 单例类 简单工厂模式 【设计模式】设计模式系列总目 不断更新中……创建型设计模式单例模式【设计模式】单例模式(1)什么是单例模式【设计模式】单例模式(2)单例模式的几种写法【设计模式】单例模式(3)如何用单例模式解决实际问题【设计模式】单例模式(4)单例模式被破坏的情景【设计模式】单例模式(5)JDK源码中的单例模式【设计模式】单例模式(6)Android SDK源码中的单例模式【设计模式】单例模式(7)Spring源码中的单例模式【设计模式】单例 设计模式 Android Java 设计模式-工厂模式设计与详解 工厂模式(Factory Pattern)是一种常用的创建型设计模式,其核心目的是实现创建对象的接口和具体的实例化分离,通过建立一个工厂类,对实现了同一接口的一些类进行实例的创建,以增加系统的灵活性和可维护性。当需要大量创建一个类的实例的时候,可以使用工厂模式,即从原生的使用类的构造去创建对象的形式迁移到基于工厂提供的方法去创建对象的形式。本文将通过类图及示例代码详细介绍工厂模式的三种形式:简单工厂模式、工厂方法模式和抽象工厂模式。 工厂模式 简单工厂 工厂方法 抽象工厂 Java 设计模式(Java版)总结 设计模式是一套被反复使用、多数人知晓、经过分类编目的优秀代码设计经验的总结。使用设计模式是为了重用代码、使代码更易理解并保证代码的可靠性。 Java 设计模式 设计模式-快餐简解-【策略模式】 l 设计模式-快餐简解-【策略模式】 【策略模式应用场景举例】 比如在玩“极品飞车”这款游戏,那么游戏对车的轮胎是可以更换的,不同的轮胎在高速转弯时有不同的痕迹样式,那么针对“汽车”的配件“轮胎”就要可以变化,而且轮胎和轮胎之间是可以相互替换的,这就是典型的要应... 策略模式 System JAVA 设计模式-快餐简解-【装饰模式】 设计模式-快餐简解-【装饰模式】 【装饰模式应用场景举例】 比如在玩“极品飞车”这款游戏,游戏中有对汽车进行喷涂鸦的功能,而且这个喷涂鸦是可以覆盖的,并且覆盖的顺序也影响到最后车身的显示效果,假设现在喷涂鸦具有2种样式: (1)红色火焰 (2)紫色霞光 如果使用“继承父类”设计这样的功能,那么类图就像如... 装饰模式 子类 父类 简说设计模式——命令模式 一、什么是命令模式 在说命令模式前我们先来说一个小例子。很多人都有吃夜市的经历,对于那些推小车的摊位,通常只有老板一个人,既负责制作也负责收钱,我要两串烤串多放辣,旁边的人要了三串烤面筋不要辣,过了一会儿又来人要烤蔬菜……,当人多的时候记忆力不好的老板肯定就不知道谁要的啥、交没交钱了;而去有店铺的烤肉摊,点单的时候会有服务员来记录我们的菜单,然后再去通知烧烤师傅进行烧烤,这样就不会出现混乱了,当 设计模式 命令模式 简说设计模式——状态模式 一、什么是状态模式 状态这个词汇我们并不陌生,在日常生活中,不同时间就有不同的状态,早上起来精神饱满,中文想睡觉,下午又渐渐恢复,晚上可能精神更旺也可能耗费体力只想睡觉,这一天中就对应着不同的状态。或者对软件开发人员更形象的描述可能是UML的状态图(即用于描述一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态对不同的事件做出反应)。 其实相对来说,就是一种状态的变化,而状态模式 设计模式 状态模式 简说设计模式——外观模式 简说设计模式——外观模式一、什么是外观模式 有些人可能炒过股票,但其实大部分人都不太懂,这种没有足够了解证券知识的情况下做股票是很容易亏钱的,刚开始炒股肯定都会想,如果有个懂行的帮帮手就好,其实基金就是个好帮手... 外观模式 客户端 设计模式 业务逻辑 数据访问层 简说设计模式——策略模式 一、什么是策略模式 策略这个词应该怎么理解,打个比方说,我们出门的时候会选择不同的出行方式,比如骑自行车、坐公交、坐火车、坐飞机、坐火箭等等,这些出行方式,每一种都是一个策略。 再比如我们去逛商场,商场现在正在搞活动,有打折的、有满减的、有返利的等等,其实不管商场如何进行促销,说到底都是一些算法,这些算法本身只是一种策略,并且这些算法是随时都可能互相替换的,比如针对同一件商品,今天打八折、明天 策略模式 设计模式 简说设计模式——职责链模式 一、什么是职责链模式 从文字角度出发,我们可以先将关注点放在“链”字上,很容易联想到链式结构,举个生活中常见的例子,击鼓传花游戏就是一个很典型的链式结构,所有人形成一条链,相互传递。而从另一个角度说,职责链就是所谓的多级结构,比如去医院开具病假条,普通医生只能开一天的证明,如果需要更多时常,则需将开具职责转交到上级去,上级医师只能开三天证明,如需更多时常,则需将职责转交到他的上级,以此类推,这就 设计模式 职责链模式 简说设计模式——迭代器模式 一、什么是迭代器模式 迭代器这个词在Java中出现过,即Java中使用Iterator迭代器对集合进行遍历,但迭代器模式算是一个没落的模式,基本上没人会单独写一个迭代器,除非是产品性质的开发。 迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。UML结构图如下: 其中,Aggregate是聚集抽象类,负责提供创建具体迭代器角色的接口;It 设计模式 迭代器模式 简说设计模式——享元模式 一、什么是享元模式 说到享元模式,第一个想到的应该就是池技术了,String常量池、数据库连接池、缓冲池等等都是享元模式的应用,所以说享元模式是池技术的重要实现方式。 比如我们每次创建字符串对象时,都需要创建一个新的字符串对象的话,内存开销会很大,所以如果第一次创建了字符串对象“adam“,下次再创 享元模式 字符串 服务器 抽象类 客户端 简说设计模式——模板方法模式 一、什么是模板方法模式 所谓模板方法模式,其实很简单,可以从模板的角度考虑,就是一个对模板的应用,就好比老师出试卷,每个人的试卷都是一样的,即都是从老师的原版试卷复印来的,这个原版试卷就是一个模板,可每个人写在试卷上的答案都是不一样的,这就是模板方法模式,是不是很好理解。它的主要用途在于将不变的行为从子类搬到超类,去除了子类中的重复代码。 模板方法模式(TemplateMethod),定义一个 设计模式 模板方法模式 简说设计模式——代理模式(续) 之前说了代理模式,即为其他对象提供一种代理以控制对这个对象的访问,详情见《简说设计模式——代理模式》,而代理模式常见的实现方式为静态代理及动态代理。一、静态代理 所谓静态代理类是指:由程序员创建或由特定工具自动生成源代码,再对其进行编译。在程序运行之前,代理类的.class文件就已经存在了。UML结构图如下: 这里以持久化层的数据交互类为例,IUserDao是与数据库进行交互的接口,Use 设计模式 代理模式 简说设计模式——解释器模式 一、什么是解释器模式 解释器这个名词想必大家都不会陌生,比如编译原理中,一个算术表达式通过词法分析器形成词法单元,而后这些词法单元再通过语法分析器构建语法分析树,最终形成一颗抽象的语法分析树。诸如此类的例子也有很多,比如编译器、正则表达式等等。 如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子,这样就可以构建一个解释器,该解释器通过解释这些句子 设计模式 解释器模式 简说设计模式——中介者模式 一、什么是中介者模式 中介这个词并不陌生,就是房屋中介的那个“中介”,就是中间人的意思。比如MVC模式,C(Controller控制器)是M(Model模型)和V(View视图)的中介者,在前后端交互时起到了中间人的作用。 中介者模式(Mediator),用一个中介对象来封装一系列的对象交互。中介者使各个对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。UML结构图 设计模式 中介者模式 手写js原生方法总结(简版) Array篇 定义一个测试数组 const players = [ { name: '科比', num: 24 }, { name: '詹姆斯', num: 23 }, { name: '保罗', num: 3 }, { name: '威少', num: 0 }, { name: '杜兰特', nu ... 数组 i++ 分隔符 数组长度 空字符串 设计模式总结 一:一个目标 二:两种手段 三:八大原则 四:重构技法 五:从封装变化角度对模式分类 六:类图对比 对比所有模式的类图,几乎所有模式的结构都归属到:下面第三种类型 七:关注变化点和稳定点 八:什么时候不用模式 九:经验之谈 十:设计模式成长之路(4阶段) 设计模式 复用 松耦合 类图 封装 java线程池取消队列 Executors线程池三种阻塞队列 ArrayBlockingQueue<>(5);//基于数组的先进先出队列,有界LinkedBlockingQueue<>();//基于链表的先进先出队列,无界 SynchronousQueue<>();//无缓冲的等待队列,无界四种拒绝策略ThreadPoolExecutor.AbortPolicy() java线程池取消队列 多线程 java 线程池 先进先出 STM32玩转物联网实战 一、材料准备 准备以下材料 二、设备连接 2.1、插入物联网卡 将BC20核心板从主板上拔下,按照指示将物联卡中卡插入BC20核心板。将物联网卡插好后,重新将BC20核心板装回主板 2.2、接入温湿度传感器 找到主板上的JP2,将DHT11温湿度传感器接入,注意正负极,不要接反,接好后DHT11温湿度传感器灯亮 2.3、接入仿真器 接入仿真器,用于下载程序。蓝色线为多余线 2.4、接入电脑 将板子 STM32玩转物联网实战 stm32 单片机 arm 仿真器 spark3 udf注册 用户自定义函数(UDF)是大多数SQL环境的一个关键特性,其主要用于扩展系统的内置功能。UDF允许开发人员通过抽象其低级语言实现在更高级语言(如SQL)中应用的新函数。Apache Spark也不例外,其为UDF与Spark SQL工作流集成提供了各种选项。在本篇博文中,我们将回顾Python、Java和Scala上的Apache Spark UDF和UDAF(用户自定义的聚合函数)实现的简单示例 spark3 udf注册 Spark UDF SQL Scala 昇腾架构图 &n 昇腾架构图 服务器 虚拟化 IP Android 软件安装不弹安装完成页面 一,很多人在Android2.2开启APP2SD之后如果安装程序时死机或者遇到其他情况,当再次安装程序会提示”应用程序未安装”,从而安装程序失败。解决方法:储存模式连接电脑找到SD卡目录下的.android_secure文件夹,里面应该会有一个smdl2tmp1.asec,也可能是其他名称,总之与正常程序命名格式明显不一样的文件,删除,再次安装软件,看看是不是好了。二,打开设置-管理应用程序-用系 重启 android 缓存文件