当前位置: 首页 > news >正文

重构两例:从违背原则到符合开闭与单一职责

一.登录功能重构(符合单一职责原则)

A0EACE65C71FA24B1D1891AA92065D84
在原始设计中,一个登录类承担了过多的职责:界面初始化、界面显示、输入验证、数据库连接获取、用户信息查询以及程序入口启动。这种设计导致类变得臃肿,任何一项职责的变更都可能影响到其他职责,同时也降低了代码的可读性和可维护性,违背了单一职责原则。

重构方法:将登录类中的各项职责拆分到多个独立的类中。具体来说,将界面初始化、界面显示和输入验证这三个紧密相关的界面层职责放在一个类中;将数据库连接的获取单独提取为一个类;将用户信息查询的职责也单独提取为一个类;程序入口则作为一个独立的启动类。拆分后,每个类只负责一项明确的职责,类之间通过清晰的依赖关系进行协作(界面类依赖查询类,查询类依赖连接类),既降低了耦合度,也提高了代码的可维护性和可测试性。重构后如图:
屏幕截图 2026-05-06 214942

二.图表显示模块重构(符合开闭原则)

D56DFDC3A65DD173FDA23E6BFD245EB7
在原始设计中,图表显示类根据不同图表类型(饼状图、柱状图等)直接在方法内部判断并创建对应的图表对象。当需要新增图表类型时,必须修改该类的源代码,增加新的条件分支,这违背了开闭原则——对扩展开放、对修改关闭。

重构方法:引入一个抽象的图表接口,将各种具体图表(饼状图、柱状图)都实现该接口。图表显示类不再直接依赖具体图表类,而是依赖这个抽象接口。同时,通过工厂模式或依赖注入的方式将具体图表对象传递给显示类。这样一来,当需要增加新的图表类型时,只需新增一个实现接口的类,而无需修改已有的显示类代码,从而实现了对扩展开放、对修改关闭的目标。重构后如图:
屏幕截图 2026-05-06 213544

http://www.jsqmd.com/news/766226/

相关文章:

  • LyricsX终极指南:在Mac上享受专业级歌词同步体验
  • 对话系统优化实战:从数据清洗到意图识别的全流程解析
  • 【PSO三维路径规划】TAMOPSO三维无人机飞行路径规划【含Matlab源码 15405期】
  • 你的微信,终于可以同时在手机和平板上登录了
  • 二刷hot100-24.两两交换链表中的节点
  • 科研机构如何选购厌氧培养箱?2026年实测避坑指南 - 速递信息
  • 行政管理论文降AI工具免费推荐:2026年公共管理政策研究4.8元极速降AI一次过指南
  • LeGO-LOAM地面点分离实战:用10度角阈值搞定草坪与斜坡(附代码调参心得)
  • 2026 粉末冶金斜齿轮厂家哪家强?五大优质供应商深度评测 - 速递信息
  • 深度解析Realtek Wi-Fi 6/7驱动架构:rtw89项目实战指南
  • 避坑指南:用Open-GroundingDino训练自定义数据集,我踩过的那些环境与数据格式的坑
  • STM32F4驱动步进电机,用CubeMX配置主从定时器模式(TB6600/DRV8825通用)
  • Firefox质疑Google LLM Web API论断,自身AI功能争议下推“AI Controls”
  • PX4-Autopilot架构深度解析:无人机飞控系统的企业级解决方案
  • 【泰凌微实战 - 01 】TLSR8258第一篇 电子价签实战|2.13寸EPD+10分钟低功耗唤醒
  • 突发:AISMM认证通道将于2026年Q2关闭旧版评估协议!现在不掌握V2.1动态基线,Q3招标直接出局
  • 2026 年粉末冶金齿轮厂家哪家强?五大优质供应商深度评测,华为二级供应商领衔推荐! - 速递信息
  • 2026年OpenClaw如何安装?腾讯云详细实用3分钟搭建及接入百炼APIKey指南
  • 对比直接使用原厂 API 体验 Taotoken 聚合调用的便捷与灵活
  • 上海用户如何挑选专业的恒温摇床销售厂家?2026年实测方案 - 速递信息
  • 上海用户如何挑选专业靠谱的恒温摇床厂商?2026年实测方案 - 速递信息
  • 终极指南:使用ncmdump快速解密网易云音乐NCM格式音频文件
  • 上海生物实验室如何选购2026年厌氧培养箱?实测方案 - 速递信息
  • 戴尔笔记本风扇深度调校完全指南:从系统限制到完全掌控
  • Java 求职者面试:从微服务到安全框架的深度探讨
  • AISMM模型落地失效真相:87%失败源于“治理-工程”语义断层——附2024最新跨职能对齐检查矩阵
  • 2025-2026 GEO服务商深度解析与精准选型攻略 - 速递信息
  • 从STM32F405到AT32F435:手把手教你升级Aocoda-RC F405V2飞控的硬件兼容性
  • Rust 文件I/O操作实战:高效处理文件系统
  • AI赋能数据库开发:用快马智能生成与优化复杂SQL查询及数据模型