为什么做网站的会弄友情链接/安装百度到手机桌面

为什么做网站的会弄友情链接,安装百度到手机桌面,用wordpress做的网站有哪些,做房地产要自己开网站✨资料&文章更新✨ GitHub地址:https://github.com/tyronczt/system_architect 文章目录 项目中的应用设计模式创建型设计模式结构型设计模式行为型设计模式 💯考试真题题外话 项目中的应用 在实际项目中,我应用过多种设计模式来解决不同…

✨资料&文章更新✨
GitHub地址:https://github.com/tyronczt/system_architect

文章目录

  • 项目中的应用
  • 设计模式
    • 创建型设计模式
    • 结构型设计模式
    • 行为型设计模式
  • 💯考试真题
  • 题外话

项目中的应用

在实际项目中,我应用过多种设计模式来解决不同的问题,以下是一些例子,助于理解记忆:

  1. 单例模式(Singleton Pattern)
  • 应用场景: 在电商平台中,我使用单例模式来管理全局唯一的订单 ID 生成器。
  • 解决问题: 确保系统中只有一个订单 ID 生成器实例,避免多个实例导致 ID 冲突,保证订单数据的准确性和一致性,同时节约系统资源。

2. 工厂模式(Factory Pattern)

  • 应用场景: 在支付模块中,我使用工厂模式根据不同的支付类型(如支付宝、微信支付、银行卡支付)创建不同的支付客户端。
  • 解决问题: 将支付客户端的创建逻辑与业务代码解耦,方便扩展新的支付方式,提高代码的可维护性和可扩展性,并简化了对象创建逻辑。

3. 策略模式(Strategy Pattern)

  • 应用场景: 在商品促销模块中,我使用策略模式根据不同的用户等级(如普通会员、VIP 会员、超级 VIP 会员)采用不同的促销策略。
  • 解决问题: 避免大量的 if-else 语句,将不同的促销策略封装成独立的类,方便扩展和维护,提高代码的可读性和灵活性。

4. 模板方法模式(Template Method Pattern)

  • 应用场景: 在数据导出模块中,需要将数据导出为不同的格式(如 CSV、Excel、PDF),但导出的基本流程相同,我使用了模板方法模式。
  • 解决问题: 避免重复编写相同的导出流程代码,固定算法骨架,提高代码的复用性,同时允许子类根据需要实现具体的导出逻辑。

5. 建造者模式(Builder Pattern)

  • 应用场景: 在订单系统中,需要构建复杂的订单对象,订单包含多个属性(如商品列表、用户信息、支付信息等),我使用了建造者模式。
  • 解决问题: 避免构造函数参数过多,分步骤构建复杂对象,简化复杂对象的构建过程,提高代码的可读性和可维护性。

6. 观察者模式(Observer Pattern)

  • 应用场景: 在用户注册模块中,当用户注册成功后,需要发送欢迎短信、发送注册邮件、增加用户积分等操作,我使用了观察者模式。
  • 解决问题: 将注册成功后的操作与注册流程解耦,避免注册流程过于臃肿,实现松耦合的通知机制,提高代码的可扩展性和灵活性。

7. 装饰器模式(Decorator Pattern)

  • 应用场景: 在日志系统中,需要为日志记录添加额外的功能(如加密日志、压缩日志),我使用了装饰器模式。
  • 解决问题: 动态地为对象添加额外的功能,而无需修改其结构,提供比继承更灵活的扩展方式,遵循开闭原则,提高代码的灵活性和可扩展性。

8. 适配器模式(Adapter Pattern)

  • 应用场景: 在系统集成中,需要将第三方支付接口适配到现有的支付系统中,我使用了适配器模式。
  • 解决问题: 解决接口不兼容的问题,实现不兼容接口的协作,使现有系统能够与第三方接口无缝对接,提高系统的兼容性和可扩展性。
    总而言之,通过合理地应用这些设计模式,我解决了项目中遇到的代码重复、耦合度高、扩展性差等问题,提高了代码的可维护性、可扩展性和可复用性。在选择和应用设计模式时,需要根据具体场景权衡利弊,避免过度设计。关键是要理解模式的本质,并灵活运用。

设计模式

创建型、结构型、行为型

创建型设计模式

结构型设计模式

行为型设计模式

💯考试真题

答案:(54) D,(55)A,(56)B,(57)A

答案:C D A B


题外话

此文中讲解的设计模式过于理论,找了几篇偏实践的文章,需要细细研磨才会对设计模式有更深入的理解:

Spring 中经典的 9 种设计模式

23 种设计模式详解(全23种)

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

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

相关文章

Linux的Shell编程

一、什么是Shell 1、为什么要学习Shell Linux运维工程师在进行服务器集群管理时,需要编写Shell程序来进行服务器管理。 对于JavaEE和Python程序员来说,工作的需要。Boss会要求你编写一些Shell脚本进行程序或者是服务器的维护,比如编写一个…

论文阅读笔记:Deep Unsupervised Learning using Nonequilibrium Thermodynamics

1、来源 论文连接1:http://ganguli-gang.stanford.edu/pdf/DeepUnsupDiffusion.pdf 论文连接2(带appendix):https://arxiv.org/pdf/1503.03585v7 代码链接:https://github.com/Sohl-Dickstein/Diffusion-Probabilistic-Models 代码的环境配置…

Linux 查看及测试网络命令

使用 ifconfig 命令查看网络接口地址 查看指定的网络接口信息 执行 ifconfig ens33 命令可以只查看网卡 ens33 的配置信息

ABAP语言的动态编程(4) - 综合案例:管理费用明细表

本篇来实现一个综合案例:管理费用明细表。报表在实际项目中,也有一定的参考意义,一方面展示类似的报表,比如管理费用、研发费用等费用的明细,使用业务比较习惯的展示格式;另一方面正好综合运用前面学习的动…

【Redis】Redis的数据删除(过期)策略,数据淘汰策略。

如果问到:假如Redis的key过期之后,会立即删除吗? 其实就是想问数据删除(过期)策略。 如果面试官问到:如果缓存过多,内存是有限的,内存被占满了怎么办? 其实就是问:数据的淘汰策略。…

Linux配置yum仓库,服务控制,防火墙

一、yum仓库 1.在安装软件时,首先第一步就是要考虑软件的版本的问题! 2.软件的安装:最安全可靠的方法就是去软件对应的官网上查看安装手册(包括的软件的下载) 红帽系软件安装的常见的3种方式 (1&#x…

设计模式(创建型)-抽象工厂模式

摘要 在软件开发的复杂世界中,设计模式作为解决常见问题的最佳实践方案,一直扮演着至关重要的角色。抽象工厂模式,作为一种强大的创建型设计模式,在处理创建一系列或相关依赖对象的场景时,展现出了独特的优势和灵活性。它通过提供一个创建对象的接口,让开发者能够在不指定…

【JavaEE】-- SpringBoot快速上手

文章目录 1. Maven1.1 什么是Maven1.2 为什么要学Maven1.3 创建一个Maven项目1.4 Maven核心功能1.4.1 项目创建1.4.2 依赖管理1.4.3 Maven Help插件 1.5 Maven仓库1.5.1 本地仓库1.5.2 中央仓库1.5.3 私有服务器(私服) 1.6 Maven设置国内源1.6.1 配置当前…

TCP/IP 协议精讲-精华总结版本

序言 本文旨在介绍一下TCP/IP涉及得所有基础知识,为大家从宏观上俯瞰TCP/IP提供一个基石,文档属于《TCP/IP图解(第五版)》的精简版本。 专业术语 缩写 全称 WAN Wide area network广域网 LAN Local area network局域网 TC…

C语言——结构体、联合、枚举

C语言中自定义类型 结构体结构体变量的创建和初始化结构体传参结构体内存对齐(如何存储) 联合体(共用体)联合体创建和初始化联合体大小(如何存储) 枚举类型枚举类型创建枚举类型初始化枚举的优点(相较于define) 前言 C语言中有内置类型和自定义类型,内置类型就像int…

【Linux操作系统——学习笔记二】Linux简单导航命令操作

一、前言 学习Linux,本质上是学习在命令行下熟练使用Linux的各类命令。 命令行:是一种通过输入命令和参数与计算机系统进行交互的方式,可以使用各种字符化命令对系统发出操作指令,打开Linux终端,进入命令行界面。 …

新安装的cursor安装不了插件

我安装的cursor版本0.47.5 直接说解决办法 找到安装路径cursor\resources\app下的product.json 修改https://marketplace.cursorapi.com为https://marketplace.visualstudio.com

HTML5扫雷游戏开发实战

HTML5扫雷游戏开发实战 这里写目录标题 HTML5扫雷游戏开发实战项目介绍技术栈项目架构1. 游戏界面设计2. 核心类设计 核心功能实现1. 游戏初始化2. 地雷布置算法3. 数字计算逻辑4. 扫雷功能实现 性能优化1. DOM操作优化2. 算法优化 项目亮点技术难点突破1. 首次点击保护2. 连锁…

Qt之自定义界面组件 一

通过qt中的painter绘图事件绘制一个电池电量图的变化。效果如下图 创建一个基于界面widget工程,在wdiget界面添加一个widget界面,将添加的widget界面的类提升为Tbattery.在Tbattery类中重写painEvent电池电量代码 文件目录结构 主要部分代码 //Tbattery.cpp #inc…

LeRobot源码剖析——对机器人各个动作策略的统一封装:包含ALOHA ACT、Diffusion Policy、VLA模型π0

前言 过去2年多的深入超过此前7年,全靠夜以继日的勤奋,一天当两天用,抠论文 抠代码 和大模型及具身同事讨论,是目前日常 而具身库里,idp3、π0、lerobot值得反复研究,故,近期我一直在抠π0及l…

数据结构篇——线索二叉树

一、引入 遍历二叉树是按一定规则将二叉树结点排成线性序列,得到先序、中序或后序序列,本质是对非线性结构线性化,使结点(除首尾)在线性序列中有唯一前驱和后继;但以二叉链表作存储结构时,只能获…

汽车保养记录用什么软件记录,汽车维修记录查询系统,佳易王汽车保养维护服务记录查询管理系统操作教程

一、概述 本实例以佳易王汽车保养维护服务记录查询管理系统为例说明,其他版本可参考本实例。试用版软件资源可到文章最后了解,下载的文件为压缩包文件,请使用免费版的解压工具解压即可试用。 软件特点:1、功能实用,操…

Python IP解析器 ip2region使用

说明:最近需要在python项目内使用IP定位所在城市的需求,没有采用向外部ISP服务商API请求获取信息的方案,则翻了翻,在搞Java时很多的方案,在Python端反而可选择范围很小。 # 示例查询 ips ["106.38.188.214"…

python开发订单查询功能(flask+orm bee)

1. 搭建python环境。 可以参考其它文档。 此处python使用 3.12 IDE随意,PyCharm 或 Eclipse PyDev也可以。 2. Flask 2.1 安装Flask pip install Flask 2.2 一个最简单的flask实例 创建一个工程, 新建一个 main.py文件, 输入以下内容…

哈尔滨服务器租用托管流程

哈尔滨服务器租用托管流程可分为三个阶段实施,具体操作如下: 一、前期准备阶段 业务需求评估 明确计算资源需求:CPU核心数/线程数、内存容量、存储类型(HDD/SSD/NVMe)及容量、带宽标准(独享/共享) 确定网络架构要求:多线接入、国际…