C++设计模式(李建忠主讲)-1.设计模式简介 总结

课程目标

  • 理解松耦合设计思想
  • 掌握面向对象设计原则
  • 掌握重构技法改善设计
  • 掌握GOF核心设计模式

GOF设计模式

  • 历史性著作《设计模式:可复用面向对象软件的基础》,描述了23中经典面向对象设计模式,创立了模式在软件设计中的地位
  • 通常说的设计模式都隐含地表示“面向对象设计模式”

深入理解面向对象

  • 向下:深入理解面向对象机制
    • 封装:隐藏内部实现
    • 继承:复用现有代码
    • 多态:改写对象行为
  • 向上:深刻把握面向对象机制所带来的抽象意义,理解如何使用这些机制来表达现实世界,掌握什么是“好的面向对象设计”

软件设计复杂的根本原因

  • 变化
    • 客户需求的变化
    • 技术平台的变化
    • 开发团队的变化
    • 市场环境的变化

解决复杂性的方法

  • 分解

    • 分而治之,将大问题分解为多个小问题,将复杂问题分解成多个简单问题
      分解的例子:
      对于不同的形状定义不同的类型
      图1
      在MainForm类中存放不同类型的vector
      图2
      图3
      图4
      在OnPaint方法中根据不同的形状去绘画
      图5
      图6
  • 抽象

    • 人们处理复杂性有一个通用的技术,即抽象。由于不能掌握全部的复杂对象,我们选择忽视它的非本质细节,而去处理泛化和理想化了的对象模型。
      定义虚基类,在从该虚基类派生出不同的形状,每个形状都有各自的Draw()方法
      图7
      图8
      在MainForm类中只有vector<Shape *>shapeVector,可以放不同形状的指针,注意这里只能有Shape *,而不能用Shape
      图9
      图10
      图11
      在OnPaint()方法中实现多态调用
      图12

使用抽象的好处

在上面的例子中,当增加新的需求画出圆时,

  • 对于第一种写法,需要写一个Class Circle,再在MainForm类中增加一个vector<Circle> circleVector的数据成员,在OnMouseUp()中要push_back相应的Circle对象,再在OnPaint()方法中针对圆写具体的绘制方法。
  • 对于第二种写法,同样也需要定义一个Class Circle,它继承自Class Sharp,我们重写它的Draw方法,而对于MainForm类不需要改动,这样明显提高了代码的复用性。

软件设计的目标

  • 复用
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: “设计模式”是一本著名的计算机科学书籍,作者是Erich Gamma、Richard Helm、Ralph Johnson、John Vlissides。这本书介绍了23种常见的设计模式,这些设计模式是面向对象编程语言中可复用软件设计和架构的基础。其中包括创建型模式、结构型模式和行为型模式等,这些模式能够帮助开发者更好地组织代码结构,提高代码的可复用性和可维护性。 李建忠老师对《设计模式》一书进行了详细解读,并结合自己多年的软件开发经验,深入浅出地介绍了设计模式中每一种模式的使用场景、优点、缺点和使用方法。通过读完这本书和听取李建忠老师的解读,开发者可以深刻地理解并熟练运用这些设计模式,从而编写出更加高效、灵活、易于维护的代码。 如今,随着软件项目愈发复杂,开发者也越来越需要掌握和应用设计模式。而李建忠老师对《设计模式》一书的解读,无疑为那些想要系统学习设计模式的开发者提供了帮助和指引。此外,学习设计模式也是程序员晋升职位、提高技术水平的必经之路。因此,“设计模式”这本书及其相关的学习资料对于广大软件开发者而言都是非常重要的资料,值得认真学习和掌握。 ### 回答2: 设计模式是软件开发领域中的一个重要概念,它是指在软件设计过程中,经过长期实践和经验总结而形成的一套被广泛接受的最佳实践方法。 这些模式不是语法或代码的规则,而是一种解决特定问题的方案,描述了在特定情境下一种解决问题的最佳实践方法。 李建忠编写的《设计模式》是针对软件工程师和开发人员的一本重要著作,该书内容系统、详细,涵盖了23种常用设计模式,包括创建型模式、结构型模式和行为型模式等。通过学习这些模式,读者可以提高软件设计的质量和可重用性,同时也可以更好地理解和维护现有代码。 该书可以帮助读者了解面向对象设计的基本原则和模式,学习如何应用这些模式来解决实际的软件设计问题。作者李建忠深入浅出地讲解了每种模式的原理、应用场景以及实际案例,让读者更好地理解和应用每种模式。 总的来说,《设计模式》是一本非常实用的软件设计指南,为读者提供了一系列有用的工具和技能,可以让读者更加高效地开发出高质量的软件系统。该书对于软件工程师、软件开发人员和软件设计师都是一本必备的学习资源。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值