Java--设计模式

news/2025/1/15 17:20:00/文章来源:https://www.cnblogs.com/yangcurry/p/18404421

目录
  • 23种设计模式
    • 创建型模式
    • 结构型模式
    • 行为型模式
  • 设计模式的本质
  • 单例模式
  • 工厂模式
        • 定义
        • 解耦(对象使用过程+对象创建过程)
        • 分类
        • 简单工厂模式
  • 代理模式
  • 适配器模式
  • 外观模式
  • 策略模式

23种设计模式

创建型模式

工厂模式(Factory Pattern)
抽象工厂模式(Abstract Factory Pattern)
单例模式(Singleton Pattern)
建造者模式(Builder Pattern)
原型模式(Prototype Pattern)

结构型模式

适配器模式(Adapter Pattern)
桥接模式(Bridge Pattern)
过滤器模式(Filter Pattern)
组合模式(Composite Pattern)
装饰器模式(Decorator Pattern)
外观模式(Facade Pattern)
代理模式(Proxy Pattern)

行为型模式

责任链模式(Chain of Respons
命令模式(Command pattern)
解释器模式(Interpreter Patter
迭代器模式(lterator Pattern)
中介者模式(Mediator Pattern
备忘录模式(Memento Patter!
观察者模式(0bserver Pattern
状态模式(State pattern)
策略模式(Strategy Pattern)
漠板模式(Template Pattern)
访问者模式(Visitor Pattern)

设计模式的本质

面向对象设计原则

要真正理解设计模式就需要透彻理解面向对象设计原则和面向对象三大特性(封装继承、多态)

面向对象编程技术

设计模式的本质是面向对象编程技术的熟练和灵活运用

单例模式

单例模式是一种创建型模式,它确保一个类只有一个实例,并提供一个全局访问点来获取这个实例。单例模式通常用于管理共享资源,如数据库连接。

工厂模式

定义

工厂模式是一种创建对象的设计模式,它提供了一种创建对象的接口,使得客户端无需知道具体的创建细节,只需通过该接口就能获取所需的对象

解耦(对象使用过程+对象创建过程)

将对象的创建过程与使用过程分离使得两者之间的耦合度降低,提高了系统的灵活性和可维护性

分类

工厂模式有多种变体,如简单工厂模式、工厂方法模式和抽象工厂模式等,每种变体都有其适用的场景和特点(在实际应用中,需要根据具体的需求选择合适的工厂模式)

简单工厂模式

代理模式

代理模式是一种结构型模式,它为其他对象提供一个代理或占位符,以控制对这个对象的访问。代理模式可以在不改变对象的代码的情况下,为对象添加额外的功能

适配器模式

适配器模式是一种结构型模式,它允许不兼容的接口之间的合作,通过将一个类的接口转换成客户端期望的另一个接口

外观模式

外观模式是一种结构型模式,它为子系统中的一组接口提供一个统一的高层接口。外观模式定义了一个高层接口,使得子系统更容易使用

策略模式

策略模式是一种行为型模式,它定义了一系列算法,并将每个算法封装起来,使它们可以互换。策略模式允许在运行时选择算法

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

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

相关文章

KernelWarehouse:英特尔开源轻量级涨点神器,动态卷积核突破100+ | ICML 20242A

动态卷积学习n个静态卷积核的线性混合,加权使用它们输入相关的注意力,表现出比普通卷积更优越的性能。然而,它将卷积参数的数量增加了n倍,因此并不是参数高效的。这导致不能探索n>100的设置(比典型设置n<10大一个数量级),推动动态卷积性能边界提升的同时享受参数的…

tarjan—算法的神(一)cw

本篇包含 tarjan 求强连通分量、边双连通分量、割点 部分, tarjan 求点双连通分量、桥(割边)在下一篇。伟大的 Robert Tarjan 创造了众多被人们所熟知的算法及数据结构,最著名的如:(本文的)连通性相关的 tarjan 算法,Splay-Tree,Toptree,tarjan 求 lca 等等。 注:有…

【微信小程序反编译】入门1

原创 zkaq - Tobisec 掌控安全EDU一、前言 这几天在跟着师傅一起学习微信小程序的相关知识点,前面的微信小程序的漏洞挖掘蛮简单的,但是到后面需要黑盒测试了,就需要我们对小程序进行一个反编译,进行一个代码审计相关的知识点了。 小程序的反编译相关工具有好几个,下面我给…

代码随想录day55 || 图论5

并查集197 图中是否存在有效路径 var father []int func validPath(n int, edges [][]int, source int, destination int) bool {// 使用并查集算法,涉及到的操作,包括init,find, issample,joinfather = make([]int, n)for i, _ := range father { // initfather[i] = i}…

D45XT120-ASEMI无人机专用D45XT120

D45XT120-ASEMI无人机专用D45XT120编辑:ll D45XT120-ASEMI无人机专用D45XT120 型号:26MT160 品牌:ASEMI 封装:DXT-5 批号:2024+ 现货:50000+ 最大重复峰值反向电压:1200V 最大正向平均整流电流(Vdss):45A 功率(Pd):大功率 芯片个数:5 引脚数量:5 安装方式:直插 类型…

golang中关于死锁的思考与学习

1、Golang中死锁的触发条件 1.1 书上关于死锁的四个必要条件的讲解 发生死锁时,线程永远不能完成,系统资源被阻碍使用,以致于阻止了其他作业开始执行。在讨论处理死锁问题的各种方法之前,我们首先深入讨论一下死锁特点。 必要条件: 如果在一个系统中以下四个条件同时成立,…

ASP.NET 8 AOT 遍历文件夹获取文件名称及时长

朋友下了N多视频记不住文件夹下都有啥了…问批处理怎么导出文件夹下所有文件名及视频时长…批处理导出文件名好弄,获取视频时长真没用过…想到 .net 控制台程序 AOT 发布,不和批处理差不多效果…新建个控制台项目选下使用AOT 首先要获取文件的时长,我们需要用下 TagLibSharp…

公安网络信息体系能力分类

来源:中国电子科学研究院学报,《公安网络信息体系顶层设计》

轮胎充气压力 气压单位换算 All In One

轮胎充气压力 & 气压单位换算 All In One bar / psi 1 bar = 14.5 psi轮胎充气压力 & 气压单位换算 All In Onebar / psi气压单位换算 1 bar = 14.5 psi demos(🐞 反爬虫测试!打击盗版⚠️)如果你看到这个信息, 说明这是一篇剽窃的文章,请访问 https://www.cnblog…

【工具推荐】xxl-jobExploitGUI - xxl-job一键漏洞利用工具+一键getshll

工具介绍 xxl-jobExploitGUI实现了XXL-JOB默认accessToken权限绕过漏洞的单个检测、批量检测、一键反弹shell功能,后续会持续更新优化,添加POC检测等。 下载链接: 链接: https://pan.quark.cn/s/55ed00b1512d使用说明 单个检测批量检测 fofa语句: body="{\"code\…

电动自行车轮胎规格参数图解教程 All In One

电动自行车轮胎规格参数图解教程 All In One电动自行车轮胎规格参数图解教程 All In One电动车轮胎参数单位换算1 in / 1 英寸 => 2.54 cm / 2.54 厘米https://convertlive.com/zh/u/转换/英寸/自/厘米#10 轮胎参数 轮胎尺寸(英寸): 轮毂尺寸(英寸): 10in 轮胎宽度/断面宽度…

首发找大佬定制的 黑神话悟空内置修改器

无敌模式 无伤判定 无限生命 无限法力 无限气力 无限棍势各种几十个功能 选择游戏进程直接起飞 自己打气死了一直过不去 直接找大佬定制一个 不想让兄弟们受气了 不限速链接:https://pan.quark.cn/s/f4f826c88f1d本文来自博客园,作者:Mr小扎仙森,转载请注明原文链接:http…