Mycz0603
这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/2021Softwarecodedevelopmenttechnology
这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/2021Softwarecodedevelopmenttechnology/homework/11833
这个作业的目标 让学生了解和学习软件设计的原则、模式,并结合自身开发经历感悟

参考书籍

《软件工程 实践者的研究方法》第八版 第16章 基于模式的设计

内容总结

  • 什么是设计模式?

所谓设计模式,是用来描述问题以及解决方案的规范化方法,在某种程度上允许软件工程界获取设计知识,使解决方案能够得到重用。

  • 为什么使用设计模式?

“重复发明轮子”的情况在软件开发领域一直都存在,既浪费时间也浪费精力。通过已经存在的设计模式,可以获得特定问题的已被证明的解决方案。
设计模式可以解决问题。模式可以捕捉解决方案,不只是抽象的原则或策略。
设计模式是已经得到验证的概念。模式借助于踪迹记录捕捉解决方案,而不是根据理论或猜测。
模式具有显著的人性化元素。

  • 创建型模式、结构型模式和行为型模式
创建型模式
抽象工厂模式 集中决定实例化什么工厂
工厂方法模式 集中创建某一特定类型的对象,并从几种实现中选择其中一种
生成器模式 将一个复杂对象的构建与其表示相分离,使得同样的构建过程可以创建不同的表示
结构型模式
适配器模式 将一个类的接口转换成客户希望的另一个接口
聚集模式 是组合模式的一个版本,采用将产物聚集在一起的方法
复合模式 符合模式就是一个具有同样接口处理对象的树结构模式
容器模式 创建对象的唯一目的就是装载其他对象并管理他们
代理模式 一个类的作用是作为另一个类的接口
管道和过滤器 是一个过程链,每个过程的输出是下个过程的输入
行为型模式
责任链模式 对命令对象进行处理,或者通过逻辑包含的处理对象传递给其他对象进行处理
命令模式 命令对象把行动和参数封装起来
迭代器模式 迭代器用于按顺序访问一个聚集对象中的元素,而不必暴露其底层表示
中介者模式 对于子系统的一组接口提供一个统一的接口
访问者模式 将算法从一个对象中分离出来的方法
层次访问者模式 提供一种方式,访问层次数据机构(例如树)上的每个节点

心得体会

  • 不要强行使用一个模式,即使它解决了眼前的问题。如果环境和影响因素是错误的,那么就寻找另一个模式。
  • 如果一个体系结构模式是可用的,那么就检查所有相互协作的模式。如果这个模式合适,就对所提出的设计方案进行修改,并构建一个充分代表此模式的设计模型元素。
  • 不考虑抽象层的情况下,如果模式语言、模式库或单个的模式是存在的,那么要将解决的问题和现存的模式进行比较。
  • 以演绎和推理的方式使用设计模式。假设一个通用问题的需求是X,模式Y可以解决X,因此就使用模式Y。
  • 使用基于模式的设计时,会发生很多常见的错误。通常是没有足够的时间去理解根本问题、问题所在的环境及影响因素,所以选择了看似正确但并不适合解决方案的模式。
  • 一旦选择了错误的模式,要正视自己的错误,为不是强行适应模式。
  • 不能只照着字面的意思去应用模式,要针对具体问题对模式进行修改。

编辑界面截图

分类:

技术点:

相关文章: