设计模式之设计模式分类

java设计模式总体上分为3大类,即:

        1)创建型模式

        2)结构型模式

        3)行为型模式

1、创建型模式

      创建型模式提供创建对象的机制,主要解决对象的创建问题,封装复杂的创建过程,解耦

      对象的创建代码和使用代码,能够提升已有代码的灵活性和复用性。

      创建型模式主要有以下几种:

             1)单例模式

             2)工厂模式(工厂方法模式和抽象工厂模式)

             3)建造者模式

             4)原型模式(不常用)

2、结构型模式

     结构型模式主要总结了一些类和对象组合在一起的经典结构,这些经典结构可以解决对应

     特定场景的问题。

     结构型模式一共包含7中,即:

            1)代理模式

            2)桥接模式

            3)装饰者模式

            4)适配器模式

            5)门面(外观)模式

            6)组合模式

            7)享元模式

3、行为型模式

      行为型模式用于描述程序在运行时复杂的流程控制,即描述多个类或对象之间怎样相互协

      作共同完成单个对象都无法单独完成的任务,它涉及算法与对象间职责的分配。

      行为型模式分为类行为模式和对象行为模式,前者采用继承机制来在类间分派行为,后者

      采用组合或聚合在对象间分配行为。由于组合关系或聚合关系比继承关系耦合度低,满足

      “合成复用原则”,所以对象行为模式比类行为模式具有更大的灵活性。

       行为模式一共包括11中,分别是:

               1)观察者模式

               2)模板方法模式

               3)策略模式

               4)责任链模式

               5)状态模式

               6)命令行模式

               7)中介者模式

               8)迭代器模式

               9)访问者模式

             10)备忘录模式

             11)解释器模式

      上面 11 种行为型模式,除了模板方法模式和解释器模式是类行为型模式,其他的全部属

      于对象行为型模式。

      

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

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

相关文章

【Spring声明式事务失效的12种场景测试】

文章目录 一.Spring声明式事务是什么?二.Spring事务失效的12种场景1.访问权限问题 小结 一.Spring声明式事务是什么? Spring声明式事务是一种通过配置的方式管理事务的方法,它通过注解或XML配置来声明哪些方法需要事务管理,从而将…

JRT怎么从IRIS切换到PostGreSql库

1.执行M导出得到建库脚本文件 2.下载生成的脚本到本地D盘 3.修改驱动为PostGreSql 4.修改连接串 5.到PostGreSql里面创建一个jrtlis的数据库,模式为jrt 6.启动网站点击导入脚本按钮 导入完成了就可以正常使用PostGreSql库了

OpenCV高级图形用户界面(14)交互式地选择一个或多个感兴趣区域函数selectROIs()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 允许用户在给定的图像上选择多个 ROI。 该函数创建一个窗口,并允许用户使用鼠标来选择多个 ROI。控制方式:使用空格键或…

Google FabricDiffusion:开启3D虚拟试穿新篇章

随着数字化转型的步伐不断加快,时尚界也在探索如何利用最新技术为消费者带来更加沉浸式的购物体验。在这一背景下,Google 推出了一项名为 FabricDiffusion 的新技术,这项技术能够将2D服装图像中的高质量织物纹理转移到任意形状的3D服装模型上,从而为3D虚拟试穿提供了更为真…

HashMap优点总结及源码分析

HashMap优点总结: 可存储不同类型的数据:使用泛型来定义键和值的类型,兼容所有数据类型高效的查找和插入操作:通过key的hash映射,实现快速的查找和插入操作。时间复杂度基本为O(1)灵活的容量调整:可根据数据量增长自行…

WebSocked基础

一. WebSocket 基本概念 WebSocket是什么? WebSocket 是基于 TCP 的一种新的应用层网络协议。它提供了一个全双工的通道,允许服务器和客户端之间实时双向通信。因此,在 WebSocket 中,浏览器和服务器只需要完成一次握手&#xff…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《基于AGCN-LSTM模型的海上风电场功率概率预测 》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

端到端自动驾驶模型SparseDrive部署过程

SparseDrive 论文链接 https://arxiv.org/pdf/2405.19620 仓库链接 https://github.com/swc-17/SparseDrive 论文和模型的相关介绍大家可以参考其他博客的介绍,这里只介绍模型部署的过程和中间可能遇到的问题解决办法,以及代码解析和使用记录。 模型部署…

解决ubuntu20 启动卡死在 installing open-vm-tools 问题

------------------------------------------------------------------------------- 1. 解决ubuntu20 启动卡死在 installing open-vm-tools 问题 ------------------------------------------------------------------------------- 最近VMware 安装ubuntu-20.04.6-desktop…

FLINK SQL时区问题

SQL时区问题 在Flink SQL中,时区问题是一个需要特别关注的点,因为时区的不一致可能会导致数据的不一致性。以下是对Flink SQL时区问题的详细解释和解决方案: 一、时区问题背景 时间类型与时区: 在Flink SQL中,时间类…

CyberRT通信介绍与基于Reader、Writer的通信实践(apollo9.0)

目录 数据通信场景 CyberRT中的通信方式 ​编辑 通信模式 话题通信 服务通信 参数通信 protobuf protobuf简介 protobuf文件编写 topic通信实验 实验环境 实验准备 代码编写 定义消息格式 发送消息 接收消息 定义编译规则 程序编译 运行程序 数据通信场景 …

fabric-sdk-go

Fabric-SDK-go 区块链网络搭建fabric-sdk代码代码结构:代码eg: 区块链网络搭建 使用fabric-sample的网络结构用容器搭建起测试网络即可。 fabric-sdk代码 代码很简易,主要为了了解怎么使用fabric为编程人员提供的sdk从而提供HTTP接口的情况…

Git 修改分支名

在Git中修改分支名称&#xff0c;可以使用以下步骤&#xff1a; 切换到要重命名分支之外的其他分支&#xff1a; git checkout <其他分支名>重命名本地分支&#xff1a; git branch -m <旧分支名> <新分支名>如果需要删除远程的旧分支并创建新分支&#xff1…

浅谈华为 HarmonyOS Next

1. 万物互联时代的新机遇 随着万物互联时代的到来&#xff0c;智能应用从几十亿部手机扩展到数百亿个IoT设备&#xff0c;深刻改变了人们的生活方式。这为我们应用开发者带来了新的机遇和挑战。 机遇 : 目前正处于万物互联时代的前夕&#xff0c;正在经历手机单设备到全场景多…

技术分享:A-23OH型树脂在汽车涂装废溶剂回收中的应用

在当今汽车制造业竞争激烈的环境下&#xff0c;提高生产效率、降低成本的同时&#xff0c;满足环保要求已成为各制造商追求的核心目标。水性涂料因其环保、节能等多重优势&#xff0c;在汽车涂装领域的应用日益广泛。然而&#xff0c;随之而来的喷涂废溶剂处理问题也日益凸显。…

从 Hadoop 迁移到数据 Lakehouse 的架构师指南

从 Hadoop 到数据湖仓一体架构的演变代表了数据基础架构的重大飞跃。虽然 Hadoop 曾经以其强大的批处理能力统治着大数据领域&#xff0c;但如今的组织正在寻求更敏捷、更具成本效益和现代化的解决方案。尤其是当他们越来越多地开始实施 AI 计划时。根本没有办法让 Hadoop 为 A…

计算机网络架构实例

小型企业网络 1. 终端设备&#xff1a; - 员工的台式电脑和笔记本电脑&#xff0c;用于日常办公&#xff0c;如文档处理、邮件收发、业务软件使用等。 - 智能手机和平板电脑&#xff0c;方便员工在外出或移动办公时也能接入公司网络&#xff0c;查看邮件和处理紧急事务。 2.…

三周精通FastAPI:1 第一步入门

FastAPI是一个非常棒的python web和api框架&#xff0c;准备用三周的时间“精通它” 学习流程参考FastAPI官网的用户教程&#xff1a;教程 - 用户指南 - FastAPI 学前提示 运行代码 所有代码片段都可以复制后直接使用&#xff08;它们实际上是经过测试的 Python 文件&#x…

UG NX12.0建模入门笔记:1.0 UG NX12.0安装教程

一、如何关闭防火墙&#xff1f; 提示&#xff1a;安装软件之前&#xff0c;建议先 关闭防火墙和杀毒软件&#xff01;&#xff01;&#xff01; 文章目录 一、如何关闭防火墙&#xff1f;二、UG NX12.0安装包三、UG NX12.0安装教程1.新建文件夹2.安装JAVA环境3.安装许可证管理…

LeetCode_2235. 两整数相加_java

1、问题 2235. 两整数相加https://leetcode.cn/problems/add-two-integers/ 给你两个整数 num1 和 num2&#xff0c;返回这两个整数的和。 示例 1&#xff1a; 输入&#xff1a;num1 12, num2 5 输出&#xff1a;17 解释&#xff1a;num1 是 12&#xff0c;num2 是 5 &am…