常用的七种设计模式

news/2024/10/18 18:17:54/

常用的七种设计模式

  • 单例模式:保证一个类只有一个实例,并提供一个全局的访问点。它通常通过将构造函数私有化,并提供一个静态方法来实现。
  • 工厂方法模式:定义一个用于创建对象的接口,由子类决定实例化哪一个类。即用来创建不同但是相关类型的对象(继承同一父类或者接口的一组子类),由给定的参数来决定创建哪种类型的对象。工厂方法模式使一个类的实例化延迟到其子类。
  • 抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。它是工厂方法模式的扩展,将一组工厂封装在一起,形成一种产品族。
  • 代理模式:为另一个对象提供一个替身或占位符以控制对这个对象的访问。代理模式分为静态代理和动态代理,静态代理需要自己编写代理类,动态代理则可以在运行时自动生成代理。
  • 装饰器模式:动态地给一个对象添加一些额外的职责,而不需要修改其原始类。它通过创建一个装饰器类来包裹原始类,并在装饰器类中添加新的行为或属性。
  • 观察者模式:定义对象之间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖它的对象都会得到通知并自动更新。
  • 责任链模式:将请求的发送者和接收者解耦,将多个处理器串成一条链,当一个请求从链上的处理器经过时,有可能被当前的处理器处理,有可能被下一个处理器处理,从而形成一条处理链。

设计模式分类

设计模式根据工作的目的,分为创建型模式、结构型模式和行为型模式三类。

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

说明

  • 设计模式是针对软件开发中经常遇到的一些设计问题,总结出来的一套解决方案或者设计思路
  • 设计模式要干的事情就是解耦。创建型模式是将创建和使用代码解耦,结构型模式是将不同功能代码解耦,行为型模式是将不同的行为代码解耦

http://www.ppmy.cn/news/101813.html

相关文章

【送书福利-第六期】Java诞生日,推荐Java“此生错过必遗憾”系列书单

大家好,我是洲洲,欢迎关注,一个爱听周杰伦的程序员。关注公众号【程序员洲洲】即可获得10G学习资料、面试笔记、大厂独家学习体系路线等…还可以加入技术交流群欢迎大家在CSDN后台私信我! 本文目录 一、前言二、推荐书籍三、抽奖方…

【创作纪念日】时间如梭,梭梭催我进步,在CSDN这5年,收获、成长与荣誉并存。

1、引言 小屌丝:鱼哥, 恭喜啊。 小鱼:啥情况, 给我整蒙圈了。 小屌丝:你的朋友圈啊。 小鱼:我的朋友圈咋了, 你看好哪个了? 嘿…嘿…嘿…嘿… 小屌丝:CSDN 创作5周年纪念…

无namespace下的veth+bridge实验

开头 今天尝试使用vethbridge在Linux模拟交换机的情况(不配置net namespace),本以为环境应该很快搞定的,却实实在在的花费了一整天 过程 ip link add testbridge type bridge ifconfig testbridge up ip link add dev veth1 ty…

炸裂开源:你肯定需要的6 个中文版 ChatGPT 提示教程。

提示工程(Prompt Engineering)是一门相对较新的学科,教你你如何开发、优化提示来更好的使用 GPT 等大模型、更好的将大模型的能力接入到你的系统中。 本文整理了 GitHub 上质量最高的 6 个【中文版】提示工程教程。请收藏、转发,…

【Spring】— 映射文件

映射文件 映射文件是MyBatis框架中十分重要的文件。在映射文件中&#xff0c;<mapper>元素是映射文件的根元素&#xff0c;其他元素都是它的子元素。映射文件中的主要元素如下所示。 <mapper><!--映射查询语句&#xff0c;可自定义参数&#xff0c;返回结果集…

13-周赛347总结

13-周赛347总结 第三题想太复杂了&#xff0c;贪心想到了真的好简单 第四题思路正确但是代码写不出来&#xff0c;没有想到可以用TreeMapdp 移除字符串中的尾随零【LC2710】 给你一个用字符串表示的正整数 num &#xff0c;请你以字符串形式返回不含尾随零的整数 num 。 思路…

Windows 7出现两个IP地址,导致联网问题

Qt源码解析 索引 Windows7 出现两个IP介绍 问题描述 win7电脑连接网线后出现两个IP地址&#xff0c;导致网络连接出现问题。 可能的现象有 连接网络出现黄色感叹号 局域网即时通信&#xff08;例如飞秋软件收发失败&#xff09; 修改IP地址不生效 服务软件启动报错&#…

分布式网络通信框架(十五)——Mprpc项目总结

程序调用时序图 下图介绍了项目代码的调用时序&#xff0c;从rpc服务提供方开始看 简单描述项目、实现了怎样的功能&#xff1f;采用了哪些技术栈 这个项目是基于C语言实现的一个RPC分布式网络通信框架项目&#xff0c;使用CMake在Linux平台上构建编译环境。它可以将任何单体…