系统架构设计师 - 23种设计模式(GOF)

文章目录

  • 总览
  • 创建型(5种)
    • 工厂方法 Factory Method
    • 抽象工厂 Abstract Factory
    • 生成器模式 Builder
    • 原型模式 Prototype
    • 单例模式 Singleton
  • 结构型(7种)
    • 适配器 Adapter
    • 桥接 Bridge
    • 组合模式 Composite
    • 装饰者模式 Decorator
    • 外观模式 Facade
    • 享元模式 Flyweight
    • 代理模式 Proxy
  • 行为型(11种)
    • 解释器 Interpretor
    • 模板方法 Template Method
    • 责任链 Chain Of Reponsibility
    • 命令模式 Commond
    • 迭代器 Interator
    • 中介者 Mediator
    • 备忘录 Memento
    • 观察者模式 Observer
    • 状态模式 State
    • 策略模式 Strategy
    • 访问者模式 Visitor

总览

在这里插入图片描述

创建型(5种)

工厂方法 Factory Method

定义一个创建类的接口 , 允许 在不确定一个类的具体实例的情况下创建 并使用它 ,让子类决定具体实例化的类型;

抽象工厂 Abstract Factory

定义一个接口 , 创建 一系列相关 或 互相依赖 的对象 , 而无需指定它们的具体类;

生成器模式 Builder

将类的构建过程 与 具体表现 分离 ,相同的过程可以创建不同的表示;

原型模式 Prototype

用原型实例 指定创建类的对象,并通过拷贝原型来获取新的对象;

单例模式 Singleton

保证一个类的实例 全局只有一个 , 并提供一个访问它的全局访问点 ;

结构型(7种)

适配器 Adapter

将一个类的接口转换成客户需要的另一个接口 , 使原来由于接口不能兼容的类在一起工作;

桥接 Bridge

将 抽象部分 和 实现部分 分离, 使两者可以独立的变化

组合模式 Composite

将对象组合成树形结构 以描述 部分和整体的 层次关系 , 使得操作单个对象 和 操作组合对象 具有一致性;

装饰者模式 Decorator

动态的给对象添加额外的职能;

外观模式 Facade

给一系列接口的交互过程提供统一的 接口 (访问形式) ;

享元模式 Flyweight

大量 细粒度 对象的共享技术;

代理模式 Proxy

为其他对象提供一种代理 , 以控制它的访问;

行为型(11种)

解释器 Interpretor

给定一个语言 定义其文法表示 , 并定义一个解释该语言的解释器 , 解释器通过该标识解释 语言中的句子 ;

模板方法 Template Method

定义一系列算法的骨架 , 并将其中一些特定的步骤延迟到子类去实现 ; 使得 子类可以在不改变算法的结构的前提下 , 重新定义具体步骤的实现方式;

责任链 Chain Of Reponsibility

避免请求者和接收者耦合在一起 , 定义多个对象都有能力处理请求 , 并将它们以链式结构连接 , 在链上传递请求 , 直到有一个对象处理请求为止;

命令模式 Commond

将一个请求封装成一个命令 , 使用不同的请求实现参数化 , 以支持 记录 / 撤回 / 重做 / 事务 / 队列处理

迭代器 Interator

提供一个方法顺序访问 一个组合对象的各个元素 , 而不暴露该对象的内部表示;

中介者 Mediator

定义一个中介对象 , 封装一系列对象间的交互 , 使各对象之间不需要显示的调用 ,松散耦合 , 可以独立的改变它们之间的交互 ;

备忘录 Memento

在不破坏封装性的前提下 , 捕获一个对象的内部状态 , 并在对象外保存其内部状态 , 以在合适的时机 恢复对象到保存的状态

观察者模式 Observer

定义对象间一对多的依赖关系 , 当被依赖对象状态发生变化时 , 所有依赖它的对象都能收到通知 并 自动更新 ;

状态模式 State

允许对象在内部状态改变时修改自身的行为 ;

策略模式 Strategy

定义一系列算法 , 并把它们一个个封装起来 , 可以互相替换;

访问者模式 Visitor

数据结构 和 数据访问 分离;

23种设计模式

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

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

相关文章

如何使用Trie树,设计实践Google一样的输入提示功能

来源 | 搜索技术责编 | 小白Google和百度都支持输入提示功能,辅助你快速准确的输入想要的内容。如下:输入“五一”,会提示“五一劳动节”等。那如何实现谷歌这样的输入提示功能呢?分析下输入提示的功能需求当输入前面的词A&#x…

计算机与网络

文章目录1.计算机组成2.操作系统进程管理存储管理设备管理文件管理3.数据库系统关系代数数据仓库4.计算机网络1.计算机组成 计算机组成:控制器、运算器、存储设备、输入设备、输出设备。 控制器功能程序计数器(PC)下条要执行指令的地址指令…

物联网与万物互联有什么区别?

云栖号资讯:【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! IoE与IoT:有什么区别? 除非您是专家,否则物联网(IoT)和万物互联(IoE)之间几乎没有什么区别。但是&am…

宝兰德中间件同台机器多个实例安装

文章目录1. 启动多实例2. 修改实例13. 修改实例21. 启动多实例 同一台机器同时启动两个示例ins-1和ins-2需要修改和规划端口避免冲突,端口配置在中间件安装目录下的conf/server.conf文件中。示例端口规划如下: 只需要修改http管理端口、http服务端口、J…

5G网络打破专有系统的桎梏

云栖号资讯:【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 随着技术的不断变迁,专有无线接入网络的时代正在逐渐消失。运营商希望能在降低成本的同时增加灵活性,…

为普及再助一把力!《2021年中国低代码/无代码市场研究报告》正式发布

开发能力“下放”,普通人也能通过“拖拉拽”快速搭建软件——在经历了大型套装软件、软件SaaS化之后,我国企业数字化进程即将迎来低代码/无代码开发的全新时代。 1月19日,海比研究院、中国软件网联合中国软件行业协会在北京举行《2021年中国…

阿里云CDN六大边缘安全能力,全力助推政企数字化转型

6月9日,2020年阿里云线上峰会召开。阿里云智能总裁张建锋认为,数字化已经成为中国经济的主要驱动力,疫情让政府、企业都认识到数字化的迫切性。在峰会上,阿里云CDN正式对外发布基于CDN构建的六大边缘安全能力,全力助推…

PageHelper循环依赖 com.github.pagehelper.autoconfigure.PageHelperAutoConfiguration

在用pageHelper的时候突然遇到个问题,启动项目后出现这个情况: springboot2.6好像禁止循环依赖还是啥的,翻来翻去没看到解决办法,后面去pageHelper github看,才看到最新版本已经解决了这个问题。 解决方案&#xff…

获奖名单出炉,快来看看有没有你!

这次千万别再错过!周五福利日,人人都可免费领会员!详情戳这里奖品多多,不仅有CSDN月卡会员、CSDN年卡会员,还有5w现金奖品等你瓜分!邀请越多奖品越多!本周五上午11:00,准点开放领取&…

看我如何用Dataphin实现自动化建模

前言:更多关于数智化转型、数据中台内容可扫码加群一起探讨 阿里云数据中台官网 https://dp.alibaba.com/index 作者:数据小海豚 随着大数据趋势的迅速增长,数据的重要性与日俱增,企业内看数据、用数据的诉求越来越强烈&#x…

EasyExcel 导出时 Converter转换器 注入 ExcelContentProperty 为null

异常现象: Converter转换器 注入 ExcelContentProperty 为null 直接原因: 调用**.head()**方法,重写表头样式,就导致ExcelContentProperty 注入失败。 源码原因: todo 解决办法: todo

SaaS模式云数据仓库:持续保护云上数据及服务安全

2020年6月9日,阿里云 MaxCompute 全新发布企业级新能力,在成本、性能、安全方面,持续定义企业级SaaS模式云数据仓库,通过 “云数据仓库” 的新模式,帮助企业实现数字经济新优势。 据介绍,最新发布的算力资…

看穿容器的外表,Linux容器实现原理演示

来源 | 多选参数责编 | 程序锅头图 | 下载于视觉中国容器技术的核心功能,就是通过约束和修改进程的动态表现,从而为其创造出一个“边界”也就是独立的“运行环境”。下面我们使用 C 语言和 Namespace 技术来手动创建一个容器,演示 Linux 容器…

小时候都想当科学家后来只有他做到了——对话阿里云MVP朱祺

云栖号资讯:【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 简介: 对朱祺我是好奇的。初次交流时,仅限于一个积极活跃、涉猎广泛的印象,拥抱新技术的传…

视频豪横时代,应用如何快速构建视频点播能力?

QuestMobile2020数据显示,疫情发生以来,每个网民每天花在移动互联网的时长比年初增加了21.5%,对于视频类应用增长尤为突出。而短视频用户规模已超8.5亿,用户使用时长在移动互联网用户使用总时长占比已达10.5%,仅次于社…

大数据的下一站是什么?服务/分析一体化

作者:蒋晓伟(量仔) 阿里巴巴研究员 因为侧重点的不同,传统的数据库可以分为交易型的 OLTP 系统和分析型的 OLAP 系统。随着互联网的发展,数据量出现了指数型的增长,单机的数据库已经不能满足业务的需求。特…

No outgoing sequence flow of the exclusive gateway ‘XXX‘ could be selected for continuing the proces

不满足流程图的排他网关设置了【条件表达式】的条件,注意设置条件表达式值时,内容不要出现空格。 No outgoing sequence flow of the exclusive gateway sid-9B4912C2-EEA4-4076-886E-D185AB4CBDBB could be selected for continuing the process检查流…

阿里云发布OAMKubernetes标准实现与核心依赖库

作者 | 张磊 阿里云高级技术专家、CNCF 官方大使,CNCF 应用交付领域 co-chair,Kubernetes 项目资深维护者 美国西部时间 2020 年 5 月 27 日,阿里云和微软云共同宣布,Open Application Model (OAM) 社区携…

Serverless 在大规模数据处理中的实践

来源 | Serverless作者 | 西流头图 | 下载于视觉中国前言当您第一次接触 Serverless 的时候,有一个不那么明显的新使用方式:与传统的基于服务器的方法相比,Serverless 服务平台可以使您的应用快速水平扩展,并行处理的工作更加有效…

阿里宜搭重磅发布专有云版本、精品应用市场,助力政企数字化转型

6月9日,在2020阿里云线上峰会上,“宜搭”重磅发布专有云版本和精品应用市场,为政企数字化转型提供高效、安全、可靠的服务。宜搭是阿里巴巴集团企业智能事业部自研的低代码应用开发PaaS平台,通过可视化拖拽的方式,传统…