Java设计模式 | 设计模式概述和分类

在这里插入图片描述

独孤求败五重境界

  1. 利剑(“凌厉刚猛,无坚不摧,弱冠前以之与河朔群雄争锋。”)
  2. 软剑(“紫薇软剑,三十岁前所用,误伤义士不祥,乃弃之深谷。”)
  3. 重剑(“重剑无锋,大巧不工。四十岁前恃之横行天下。”)
  4. 木剑(“四十岁后,不滞于物,草木竹石均可为剑。”)
  5. 无剑(“自此精修,渐进于无剑胜有剑之境。”)

设计模式介绍

  1. 设计模式是程序员在面对同类软件工程设计问题所总结出来的有用的经验,模式不是代码,而是某类问题的通用解决方案,设计模式(Design pattern)代表了最佳的实践。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。
  2. 设计模式的本质是提高软件的维护性,通用性和扩展性,并降低软件的复杂度
  3. 《设计模式》,作者是Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides Design(俗称“四人组GOF”)
  4. 设计模式并不局限于某种语言。

设计模式类型

设计模式分为3种类型,共23种

  1. 创建型模式:单例模式、抽象工厂模式、原型模式、建造者模式、工厂模式。
  2. 结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。
  3. 行为型模式:模板方法模式、命令模式、访问者模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式(Interpreter模式)、状态模式、策略模式、职责链(责任链)模式。

github笔记

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

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

相关文章

宜搭faas服务器获取accessToken

可以用faas服务器的OpenAPIUtil.getCustomAccessTokenThenCache(Client ID,Client Secret)就可以获取 至于获取这个Client ID,Client Secret 就需要在钉钉开放平台创建一个应用 然后在这个应用的基础信息里面有 注意的是:如果需要…

「SpringBrick快速入门指南」:一款基于Spring Boot的高级插件化开发框架

文章目录 关于 | About技术文档 | Document开源项目 | Project 案例 | Demo项目结构 | Structure主程序配置集成 | Settings引入框架依赖 | Framework在配置文件加入配置 | YamlSpringBoot启动类改引导类 | Change 插件配置集成 | Settings引入依赖 | XML定义插件引导类 | Clas…

JUnit 面试题及答案整理,最新面试题

JUnit中的断言(Assert)有哪些类型? JUnit提供了多种断言类型来帮助测试代码的正确性。常见的断言类型包括: 1、assertEquals: 用于检查两个值是否相等。如果不相等,测试失败。 2、assertTrue和assertFal…

sqllab第二十五A关通关笔记

知识点: 数值型注入双写绕过 oorranand这里不能用错误注入(固定错误回显信息)联合注入 测试发现跟25关好像一样,就是过滤了and or # 等东西 构造payload:id1/0 发现成功运算了,这是一个数值型的注入 构造payload:id…

高效使用 JMeter 生成随机数:探索 Random 和 UUID 算法

在压力测试中,经常需要生成随机值来模拟用户行为。JMeter 提供了多种方式来生成随机值,本文来具体介绍一下。 随机数函数 JMeter 提供了多个用于生成随机数的函数,其中最常用的是__Random函数。该函数可以生成一个指定范围内的随机整数或浮…

瑞_Redis_短信登录(二)

文章目录 项目介绍1.1 项目准备1.2 基于Session实现登录流程1.2.1 发送短信验证码1.2.2 短信验证码登录、注册1.2.3 校验登录状态 1.3 实现发送短信验证码功能1.3.1 页面流程1.3.2 代码实现 1.41.51.6 🙊 前言:本文章为瑞_系列专栏之《Redis》的实战篇的…

lua脚本的基础内容

官方地址:http://luajit.org/ 官方wiki地址:http://wiki.luajit.org/Home 推荐书籍: OpenResty 最佳实践:https://moonbingbing.gitbooks.io/openresty-best-practices/content/ lua基础文档:https://www.runoob.com/l…

【网络】负载均衡

OSI模型每一层的负载均衡 在OSI模型中,每一层的负载均衡具体如下: 1. 第二层(数据链路层):数据链路层的负载均衡通常涉及对MAC地址的操作。在这一层,可以使用虚拟MAC地址技术,外部设备对虚拟MA…

【SQL Server】实验七 数据完整性

1 实验目的 掌握实体完整性、参照完整性和用户自定义完整性约束的创建方法。掌握完整性约束的运行检查机制。掌握参照完整性的级联删除和修改方法。掌握正确设计关系模式完整性约束的方法。 2 实验内容 2.1 掌握实体完整性约束的创建和使用方法 创建表时定义由一个属性组成…

解决Linux中Eclipse启动时找不到Java环境的问题

按照报错的意思是没有在/usr/local/eclipse/jre/bin/java下找到java环境,我检查了一下eclipse的目录结构发现在/usr/local/eclipse没有jre/bin/java,我的想法是自己建对应文件夹然后软连接到我的java环境 cd /usr/local/eclipse sudo mkdir jre cd jre s…

将OpenCV与gcc和CMake结合使用

返回:OpenCV系列文章目录(持续更新中......) 上一篇:OpenCV4.9.0开源计算机视觉库在 Linux 中安装 下一篇: 引言: 近年来,计算机视觉技术在图像处理、目标检测和机器人等方面得到了广泛的应用…

论文篇00-【历年论文真题考点汇总】与【历年论文原题2009~2023年文字版记录】(2024年软考高级系统架构设计师冲刺知识点总结-论文篇-先导篇)

专栏系列文章推荐: 案例分析篇00-【历年案例分析真题考点汇总】与【专栏文章案例分析高频考点目录】 综合知识篇00-综合知识考点汇总目录 ...... 历年真题论文题考点汇总 历年软考系统架构设计师论文原题(2009-2022年) 因最新的2023年目前仅能搜索到回忆版,等楼主搜集到…

关于数据通信知识的补充——第二篇

目录 四.二层交换机 5.实现不同vlan通信的原理 方法一:路由器网关 方法二:单臂路由 方法三:三层交换机 五.三层路由技术 (1)直连路由 (2)静态路由 (3)动态路由 …

【Stable Diffusion】入门-04:不同模型分类+代表作品+常用下载网站+使用技巧

目录 1 模型简介2 模型文件构成和加载位置2.1 存储位置2.2 加载模型 3 模型下载渠道3.1 HuggingFace3.2 Civitai 4 模型分类4.1 二次元模型4.2 写实模型4.3 2.5D模型 1 模型简介 拿图片给模型训练的这个过程,通常被叫做“喂图”。模型学习的内容不仅包括对具体事物…

Linux中 vim 编辑器的使用

文章目录 前言一、vim编辑器模式二、简单的插入、保存和退出三、 命令模式下常用命令即其作用1. 命令模式 思维导图 前言 首先,了解一下 什么是vim 编辑器?在不同的系统中,文本的管理也会不同;windos系统就不多说了&#xff0c…

compile→错误: 不支持发行版本 17

错误: 不支持发行版本 17 具体错误描述如下: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.11.0:compile (default-compile) on project big-event: Fatal error compiling: 错误: 不支持发行版本 17 -> [Help 1] [ERROR] …

简易版 RPC 框架实现 1.0 -http实现

RPC 是“远程过程调用(Remote Procedure Call)”的缩写形式,比较通俗的解释是:像本地方法调用一样调用远程的服务。虽然 RPC 的定义非常简单,但是相对完整的、通用的 RPC 框架涉及很多方面的内容,例如注册发…

Redisson 分布式锁原理分析

Redisson 分布式锁原理分析 示例程序 示例程序: public class RedissonTest {public static void main(String[] args) {Config config new Config();config.useSingleServer().setPassword("123456").setAddress("redis://127.0.0.1:6379"…

cool 中的Midway ----node.js的TypeORM的使用

1.介绍 TypeORM | Midway TypeORM 是 node.js 现有社区最成熟的对象关系映射器(ORM )。本文介绍如何在 Midway 中使用 TypeORM 相关信息: 描述可用于标准项目✅可用于 Serverless✅可用于一体化✅包含独立主框架❌包含独立日志❌ 和老写…

第二十四天-数据可视化Matplotlib

目录 1.介绍 2.使用 1. 安装: 2.创建简单图表 3.图表类型 1.一共分为7类 2.变化 1.折线图 3.分布 ​编辑 1.直方图 2.箱型图 4.关联 1. 散点图: 2.热力图: 5.组成 1.饼图 2.条形图 6.分组 1.簇型散点图 2.分组条形图 3.分…