课程解读
培训目的本课程将通过一系列真实、系统的案例,深度揭示软件设计之美——我们将完整呈现从问题到方案的设计全过程。这不仅关乎最终的设计结果,更聚焦于背后的思考路径:如何识别复杂问题、如何权衡设计原则、如何运用设计模式逐步构建出优雅、可持续的软件架构。通过这种过程化的剖析与推演,您将不仅理解那些抽象原则的真正意图,更能掌握如何在实际场景中灵活、精妙地运用设计模式,使设计从理论走向实践,从工具升华为艺术。
培训对象
初中高级工程师、企业架构师、软件设计师、技术决策/解决方案人员等。
课程大纲第一部分、高质量软件设计
第一章、什么是高质量的软件设计
情景剧:软件设计焦虑症
1.上次的设计太糟糕了,痛下决心以后要好好设计
2.再次进行软件设计时却不知道该怎样设计
1)思考了很多,不知如何下手;2)需求一变更,重新回到了糟糕的状态;探讨:如何进行高质量的软件设计
什么是高质量的软件设计
1.软件的质量保证:内部质量与外部质量
2.高质量软件设计的标准:易读、易于维护、易于变更
第二章、软件设计原则
易于阅读:
1.规范代码、编写注释与表明动机 案例:代码编写范例与简便易行的方法
2.领域驱动设计
易于维护与变更
1.互联网+带来的挑战
1)系统需要不断地技术升级与改造,2)传统行业必须向互联网转型,3)但技术变革不是换零件那么简单,4)剖析应对技术变革的方案
2.案例讲解软件设计原则
1)低耦合
a.依赖反转原则(DIP),案例:购票业务类与数据访问类;b.开放-封闭原则(OCP),案例:需求变更与可扩展点设计,案例:Square/Circle的解决方案;c.里氏替换原则(LSP),案例:Rectangle/Square的问题,案例:查询参数传递类的问题
2)高内聚
案例:评审系统的设计;a.单一职责原则(SRP),案例:财务凭证变更带来的问题 ,案例:超级大函数与大对象的难题,案例:MySQL读写分离的改造过程;b.信息专家模式;c.不要重复自己原则(DRY),典型的代码重复案例,探讨代码复用的难题
探讨软件设计模式:
1.设计模式的由来
2.设计模式对高质量软件设计的作用
3. 设计模式的发展
第二部分、软件设计模式
第三章、适配器模式
什么是适配器模式
1.软件设计中外部接口的难题
2.适配器模式及其概念
3. 第三方框架带来的设计难题
适配器模式的应用
1.适配器模式解决第三方框架带来的难题
案例:Hibernate适配器的设计
2.适配器模式解决外部接口的设计难题
案例:第三方支付接口的设计,案例:财务数据接口的设计
第四章、策略模式
什么是策略模式
1.工资发放功能遇到的难题
1)工资发放功能最初的设计及其问题,2)对问题的分析过程及其新的设计思路
2.策略模式及其概念
策略模式的应用
1.案例:工资发放功能设计改进的过程
1)工资发放功能的Java实现,2) 工资发放功能的C++实现
2.案例:数据导出功能的设计实现
1)深入理解开放-封闭原则,2)数据导出功能的变更与改进过程
3.案例:财务凭证生成功能的设计过程
1)财务凭证生成功能的初始需求与设计,2)财务凭证生成功能的扩展与分析过程,3)财务凭证生成功能的最终设计,4)深入理解单一职责原则,5)学习“两顶帽子”的设计方式,练习:财务凭证生成功能的设计与实现
第五章、工厂模式
探讨软件设计中遇到的难题
1.依赖反转原则的设计难题
2.探讨工厂模式的本质
3. 开放-封闭原则的设计难题
简单工厂模式
1.简单工厂模式的C++实现
2.基于配置的简单工厂模式
3.剖析简单工厂如何实现依赖反转原则,案例:剖析Spring的beanFactory
4.解读工厂模式对设计的重大意义
5.讲解如何创建一个工厂
1)创建工厂的步骤与关键点;2)利用Spring框架简化工厂类的设计,案例:数据导出功能的工厂实现
工厂方法模式
1.工厂方法模式的概念
2.工厂方法模式的应用,案例:SAX框架的工厂类设计
抽象工厂模式
1.抽象工厂模式的概念
2.抽象工厂模式的实现
案例:标签库的设计改进过程
1)最初的标签库设计,2)运用简单工厂的标签库设计,3)运用工厂方法的标签库设计,4)运用抽象工厂的标签库设计,最终基于配置的标签库设计
第六章、单例模式
什么是单例模式
1.设计工厂类面临的问题
2.单例模式及其概念
3.如何实现单例模式
单例模式的应用
1.单例模式带来的设计变革
1)充血模型vs.贫血模型,2) 探讨单例模式与性能问题
单例模式改变了很多软件的设计
第七章、原型模式
什么是原型模式
1.工厂类在提供产品时遇到的设计问题
2.原型模式及其概念
原型模式的设计实现
案例:函数调用的无副作用问题,案例:JavsScript中的原型模式
第八章、模板方法模式
什么是模板方法模式
1.煮咖啡给我们的启示
2.设计工厂类的新思路
3.模板方法模式及其概念
模板方法模式的作用与技巧
案例:一个工厂模板的设计与实现※
深入理解不要重复自己原则
※ 重复代码带来的严重后果,※ 散弹式修改及其解决思路,※ 探讨实现代码复用的难题,※ 代码复用在不同场合采用的方法,※ 模板方法模式在代码复用中的作用
第九章、装饰者模式
什么是装饰者模式
※ 业务量增长带来的多数据源问题
※ 运用装饰者模式巧妙解决多数据源问题
※ 装饰者模式及其概念
装饰者模式的应用
案例:多数据源的设计实现
※ 多数据源问题的分析设计过程,※ 多数据源的设计与实现
案例:商城收银系统的设计变更过程
※ 商城收银系统期初的设计,※ 混合策略的设计与实现,※ 多层装饰者的设计与实现
重新理解里氏替换原则
※ 透明的功能扩展,※ 里氏替换原则
练习:商场收银系统的2种设计与实现
第十章、桥接模式
什么是桥接模式
1.对象继承的泛滥
2.桥接模式及其概念
桥接模式的应用
案例:员工管理与工资发放的设计
※ 员工管理与工资发放带来的继承泛滥问题,※ 采用桥接模式的设计与实现
案例:查询支持类的设计
※ 查询支持类遭遇的继承泛滥问题,※ 查询支持类的解决方案,※ 单例模式下查询支持类的设计
深入体会单一职责原则
第十一章、享元模式
什么是享元模式
※ Hibernate是怎样访问数据的,※ 享元模式及其概念
享元模式的应用
案例:数据缓存的设计实现,案例:享元模式在大数据中的应用
第十二章、其它设计模式
观察者模式:JobHunter的情景剧
代理模式:老板与秘书的差异
命令模式:像工作流一样处理业务
外观模式:超级家庭影院的烦恼
构建器模式:SQL Builder的设计
组合模式:如何构建一棵树
中介者模式:QQ在沟通中的作用
迭代器模式:如何顺序访问一个集合
第三部分、基于模式的重构
第十三章、小步快跑的开发模式
关于设计模式的思考
1.开发新项目敢于运用设计模式设计
2.维护老项目不敢运用设计模式设计
问题的分析与思考
1.对传统软件开发模式过程的梳理
2.传统软件开发模式的风险与问题
什么是小步快跑
1.小步快跑开发模式的步骤与特点
2.小步快跑开发模式的应用
案例:数据推送程序的开发过程
总结:小步快跑如何能解决问题
第十四章、如何防止软件退化
软件如何会退化
1.软件工业时代的特点
2.软件工业时代的软件研发问题
※ 案例:演示一个遗留系统的退化过程
软件最初的设计,※ 软件不断变更与退化过程
※ 结论:重构是软件发展的必然
软件重构的正确方法
1.软件重构面临的问题
2.软件重构的正确步骤
3.软件重构的原则与思路
※ 案例:演示一个遗留系统的重构过程
※ 运用“抽取方法”解决大函数问题
※ 运用“抽取类”解决大对象问题
※ 运用“抽取父类”提高代码复用
※ 运用“两顶帽子”解决新功能的扩展
※ 运用设计模式降低代码耦合
※ 建立合理的分层结构
※ 运用“领域驱动设计”拥抱变化
评估软件重构的效果

主讲专家
业内资深担任过需求分析师、主任设计师、项目经理、高级系统架构师、技术专家等各项职务。
经验丰富从事软件研发工作近二十年,多次参与大型遗留系统改造、软件系统重构等重大项目。先后主持或参与了数十个国内外大型软件项目,涉及领域包括互联网、金融、军工、财务、税务等领域。
相关事宜
2026年共举办2期课程
北京2026年03月27日~28日
南京2026年12月18日~19日
研修费用:3980元/人 (含培训、午餐、资料、证书)
报名联系:刘老师13269857695微信同步
2026年培训计划:芯片研发、FPGA研发、硬件研发、软件研发、结构设计、工艺制造、质量可靠性、生产管理——中际赛威公开课和内训
夜雨聆风