首页 > 其他分享 >23种设计模式的图示总结概述(创建型模式和结构型模式)

23种设计模式的图示总结概述(创建型模式和结构型模式)

时间:2023-10-07 16:56:51浏览次数:37  
标签:23 不同 模式 工厂 抽象 单例 设计模式 结构型

1、创建型模式

1、简单工厂模式

根据不同的需求(条件),创建出来不同的对象;

2、工厂方法模式

简单地说,就是不同的工厂分别制作不同的产品,这样能够避免上面的工厂出问题,全体待工的情况;

3、抽象工厂模式

出现新的概念——产品等级结构、产品族;


不同的产品有不同的抽象产品,不同的工厂也有不同的抽象工厂;

4、单例模式

一个类仅有一个实例;

懒汉单例模式--使用时才会被加载;

饿汉单例模式--没有使用时,已经被加载;

5、建造者模式

具体抽象者类组合在一起构成了整个的需求;(就像,汽车的各个部件组成为一辆汽车)

6、原型模式

自我复制出多个一模一样的原型对象(Ctrl+C);

又分为深克隆(将原有的方法也一并复制)和浅克隆(仅仅复制对象,并不复制方法);

2、结构型模式

1、适配器模式


相当于利用一个转换器让两个本来不互通的类实现互通了;

2、装饰器模式

3、代理模式

4、外观模式


将复杂流程封装起来,只留下一个可以同外界进行交流的类,简化外界操作;

比如:电脑、手机等;

5、桥接模式

两种引起整体变化的类分离开,在其中一种发生变化时,另外一种不受到影响;

6、组合模式

7、享元模式

标签:23,不同,模式,工厂,抽象,单例,设计模式,结构型
From: https://www.cnblogs.com/liuzijin/p/17746417.html

相关文章

  • c#组合模式详解
    基础介绍:  组合模式用于表示部分-整体的层次结构。适用于希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象的情况。  顾名思义,什么叫部分-整体,比如常见的前端UI,一个DIV标签中可以存在多个A标签、P标签、DIV标签等等。  相较于DIV这个容器整体......
  • 对比redis的RDB、AOF模式的优缺点
     1.RDB模式优缺点1.1.RDB模式优点1.1.1.RDB快照保存了某个时间点的数据,可以通过脚本执行redis指令bgsave(非阻塞,后台执行)或者save(会阻塞写操作,不推荐)命令自定义时间点备份,可以保留多个备份,当出现问题可以恢复到不同时间点的版本,很适合备份,并且此文件格式也支持......
  • 2023-10-07:用go语言,给定n个二维坐标,表示在二维平面的n个点, 坐标为double类型,精度最多
    2023-10-07:用go语言,给定n个二维坐标,表示在二维平面的n个点,坐标为double类型,精度最多小数点后两位,希望在二维平面上画一个圆,圈住其中的k个点,其他的n-k个点都要在圆外。返回一个圆心和半径,表示哪个圆可以圈住其中的k个点。坐标和半径都是double类型,最多保留小数点后两位。下面......
  • 2023年软考-系统架构设计师论文预测
    2023年11月4日软考-系统架构设计师论文预测:微服务:一种云原生架构方法,在单个应用中包含众多松散耦合且可单独部署的小型组件或服务层次风格:数据访问层、业务逻辑层、表示层基于架构的软件开发:ABSD有三个基础,功能拆分、架构风格、使用软件模板。它强调由商业、质量和功能需求的组合驱......
  • Step by step guide to becoming a C++ developer in 2023
    https://roadmap.sh/cpphttps://roadmap.sh/backend......
  • 20231006
    23/10/06NOIP模拟赛总结时间安排7:40-8:00看题8:00-9:00写T1,写了个极限复杂度\(n^2\)的代码,没想到优化,但感觉数据不会很严。9:00-10:00写T3,T4暴力,但两个暴力都挂了。10:00-11:00想T1\(O(n\log\n)\)的方法,就是没想到倒着枚举。11:00-11:35写了T2全为+的数据,发......
  • 23/10/06 模拟赛总结
    时间安排7:35-7:45看题。A题一眼秒,BC没思路,D树形DP。7:45-7:50随便过了A题。7:50-8:50写B题暴力的时候被卡了,时间复杂度怎么算都会T第一档分,也没什么好的处理方法,最后感觉应该跑不满就直接写了纯暴力。8:50-9:30思考C,写了爆搜,\(n,m\leq20\)想了一个......
  • 再谈 qbxt2023国庆刷题 Day7 T2 树
    T2倍增+换根即可,但赛时难写赛时想得线段树二分,也可from:https://www.cnblogs.com/fox-konata/p/17742669.html回头一看老师代码,发现换根换的非常神奇,长见识了方法0:第一次思考,以为要记录走排名为\(a_x\)和\(a_x+1\)的两个倍增数组,但发现并不好合并,也许可以憋出来,但还是......
  • 2023 年 10 月训练记录
    训练记录10月了。CF457FAneasyproblemabouttrees尝试理解,感谢cz_xuyixuan的题解。我们不妨先二分答案,将\(\gemid\)的设为\(1\),\(<mid\)的设为\(0\),于是问题转化为了权值均为\(0/1\)的版本。我们称一棵树的大小为其非叶节点数。我们称一棵大小为奇数的树为奇......
  • C#/.NET/.NET Core优秀项目和框架2023年9月简报
    思维导航前言DncZeusIEJIE.NETObfuscarConfuserExCommon.UtilityOptimizerJustDecompilednSpyILSpyQuickLookWingTaiFreeSchedulerCollectiveOAuth加入DotNetGuide技术交流群前言公众号每月定期推广和分享的C#/.NET/.NETCore优秀项目和框架(公众号每周至......