哈尔滨华德学院-数据科学与信息工程学院

重构代码世界的“设计思维”-《软件设计模式》课堂SC教学改革案例分享
时间:2026-04-02

在数据科学与信息工程学院的《软件设计模式》课堂上,一场别开生面的代码重构竞演正在进行。2301201班同学们以小组为单位,依次登台展示他们运用设计模式对“校园快送”系统进行的优化方案,当一组同学借助策略模式巧妙化解项目中多重条件判断难题、使系统扩展性大幅提升时,台下响起热烈的掌声。这充满思维碰撞、创新活力的场景,正是《软件设计模式》课程深入践行“以学生为中心”教学改革的缩影,课程通过“做中学”将抽象的设计模式转化为可触摸的实践成果。

化抽象为具象:让设计模式从“理论记忆走向工程实践

《软件设计模式》曾是学生眼中“听得懂、不会用”的课程—23种模式的概念、类图和适用场景,往往靠死记硬背应付考试,遇到真实项目依然无从下手。为破解这一难题,《软件设计模式》课程教学团队以SC教学改革为指引,对课程进行了系统性重构。

“设计模式的精髓在于‘解决特定场景下的问题’,如果脱离场景,就失去了生命力。”课程负责人蒋东玉老师介绍改革后的课堂,不再以模式定义和类图讲解为主线,而是以“问题驱动+项目实战”为核心:每一个模式的引入,都源于学生在前期项目开发中真实遇到的“代码坏味道”;每一次模式的应用,都落地于贯穿课程的完整项目案例。

这一设计,与软件工程系“课课联动”的改革思路一脉相承。《软件设计模式》课程承接《Java语言程序设计》的面向对象编程基础,同时又为《软件系统实现课程设计》的项目优化提供方法论支撑,三门课程围绕同一项目案例,形成了“编码实现—重构优化—集成创新”的能力培养链。

五步教学法:让课堂成为设计思维的孵化器

走进《软件设计模式》课堂,传统的“90分钟理论灌输”已不见踪影,取而代之的是“导—析—练—探—评”五步教学法的深度实践。

在关于“策略模式”的课堂上,教师首先从实际项目导入,展示一段“校园快送”系统中运费计算的代码—满屏的if-else语句让同学们直呼“太难维护”。老师引导学生化身为“分析师”,对运费计算逻辑进行剖析:变化的是什么?不变的是什么?通过师生互动、小组讨论、精准识别出业务中的“变”与“不变”,学生也深深感受到传统的硬编码虽然能跑通,但臃肿的代码维护难度极大,将运费算法封装成类的“策略模式”自然而然地成为了学生心中的“最优解”,学生在老师的引导下,运用策略模式进行代码实现,屏幕上打出的一行行Java代码让理论知识瞬间转化为指尖的工程能力。

随后老师又提出了更深层次的问题,如果未来新增“冷链配送”“、无人机配送”等多变复杂的新需求,代码该如何优化?

带着问题,各项目小组进入自主探究阶段。教师不是直接给出答案,而是引导学生思考:“探索如何使用多种模式实现多种计费规则的灵活叠加,实现功能扩展?”学生分组讨论重构方案,进行代码优化。此时,教师穿梭于各组之间,以提问引导思考,而非直接解答。

随后的代码展示将课堂推向高潮。各小组依次演示重构前后的代码对比,阐释为何选择装饰模式与策略模式结合解决“计费算法叠加”问题。在生生互评环节,其他小组从“模式应用是否恰当”、“扩展性提升程度”、“代码的可维护性”等方面进行点评。“你们将不同‘判断逻辑’都放在客户端中,对日后的维护带来了不便,是否考虑引入工厂方法模式封装判断规则,实现代码解耦?”

这样的专业追问,让思考不断深化。学生不再是知识的被动接收者,而是问题的发现者、方案的探究者和经验的建构者。

多元教学形式:情景模拟与模式竞技激发创新活力

为让抽象的“模式”变得可触可感,教学团队引入了丰富多样的教学形式。

情景教学法贯穿始终。在讲授观察者模式时,教师创设“关注公众号”情景,学生分组扮演公众号小编和关注者,用代码模拟订阅-通知机制;在讲授工厂模式时,课堂变身“软件工厂招标会”,各小组需设计一个“多数据库支持系统”,向“客户”(由其他组扮演)阐述自己的工厂方案。这种沉浸式体验,让学生在角色扮演中深刻理解模式的适用场景。

模式竞技场成为学生最喜爱的课堂活动。教师发布一段存在设计缺陷的代码,各小组在规定时间内运用所学模式进行重构,然后互评打分。竞技不仅比拼重构速度,更比拼模式选型的合理性扩展性考量。在一次关于“订单处理系统”的竞技中,多个小组不约而同地采用了职责链模式,但也有小组提出“状态模式更适合处理订单状态流转”,由此引发了一场精彩的模式辨析辩论。

生生互评机制不仅用于竞技环节,更贯穿每个项目的关键节点。依托超星学习通平台,按照软件工程师职业素养要求从模式应用准确性、代码风格、创新亮点等方面进行匿名评价,教师则根据互评质量给予积分奖励,激励学生深度参与、批判思考。

数字化支撑与评价革新:让成长过程“可视化”

依托GitLab精准记录学生的代码演进历程与个人贡献度,保障学习过程看得见;利用超星平台全过程伴随学生成长轨迹,借力AI工作台智能推送个性化资源,精准满足差异化学习需求,实现数智赋能育人。

与教学方式同步改革的,是评价体系。课程建立了以“过程积分+软件功能+模式应用”为核心的形成性评价机制。

尤为值得一提的是,课程专门设立了“重构失败分享会”——学生可以分享自己在模式应用中的“踩坑”经历。在一次分享会上,一个小组坦诚地讲述了自己误用单例模式导致多线程环境下数据不一致的教训。这种“敢于尝试、包容试错”的氛围,让课堂成为一个安全的创新实验室。

改革成效:从“学模式”到“用模式”的跨越

SC教学改革的成效在实践中得到充分验证。课程结束后,学生们普遍反映“终于知道设计模式该怎么用了”。在后续的《软件系统实现课程设计》中,2023级学生自主设计的多个项目都展现出良好的架构设计——观察者模式用于消息推送、工厂模式用于多数据库支持、装饰者模式用于权限控制扩展……这些成果直接支撑他们在专业比赛中斩获多项国家和省级奖项。

“以前觉得设计模式是高不可攀的理论,现在做项目时,脑子里会自然浮现‘这个场景可以用什么模式优化’。”2023级学生杜雯雯同学分享道。这种“设计思维”的内化,正是SC改革追求的核心目标。

企业反馈也印证了改革成效。2025届毕业生就业率持续保持100%,多家用人单位表示,华德学院的学生“代码规范意识强、架构设计思路清晰,能够快速融入真实项目开发”。

从《软件设计模式》的先行先试,到多门核心课程的“课课联动”,软件工程系的SC教学改革正走向深入。未来,该专业将继续深化教学模式创新,建设“软件工程创客教育平台”,引入更多行业真实项目,探索设计模式与人工智能、大数据等前沿领域的交叉融合,为软件产业发展输送更多具备创新精神和实践能力的高素质人才。

这场以学生成长为核心的课堂革命,正让每一个代码模块都承载思考的温度,让每一次重构优化都成为能力进阶的阶梯。