作业二

这个作业属于哪个课程 2022软件代码开发技术 (广东工业大学 - 计算机学院)
这个作业要求在哪里 读书笔记----软件设计原则、设计模式
这个作业的目标 理解主要的软件设计原则和设计模式

参考资料:
《软件设计模式》朱洪军
归纳总结
设计模式是软件开发人员在开发过程中遇到的一般问题的解决方案,而这些设计模式源自众多软件开发人员长期成功或失败经验的总结。通过学习设计模式,有助于理解软件设计,提升个人能力。

设计原则:

  • 单一职责原则:强调一个类或模块应仅有一个引起其变化的因素。
  • 开放/闭合原则:开放/闭合原则要求类或模块的代码对扩展是开放的,对修改是关闭的。
  • 接口隔离原则:接口隔离原则指出,如果某个接口的行为不是内聚的,就应该按照业务分组,并将分组后的业务行为通过隔离的接口单独定义。
  • 依赖倒置原则:依赖倒置原则建议,高层模块不应依赖于低层模块,二者都应该依赖于抽象;抽象不应依赖于细节,细节应依赖于抽象。
  • Liskov替换原则:Liskov替换原则建议子类对象必须能够完全替换掉它们的父类对象,而不需要改变父类的任何属性。

设计模式:

  • 创建型模式
  1. 单例模式:单例是指目标类只有一个实例对象,并且向使用该对象的客户端提供访问单例的全局方法。
  2. 原型模式: 原型是指通过复制自己达到构造目标对象新实例的对象。
  3. 构造器模式:构造器是指为构造一个复杂的产品对象进行产品组成元素构建和产品组装的对象。
  4. 抽象工厂模式:抽象工厂指在不指定具体产品类的情况下,为相互关联的产品簇或产品集提供创建接口,并向客户端隐藏具体产品创建的细节或表示的对象。
  5. 工厂方法模式:工厂方法模式中,工厂方法类定义产品对象创建接口,但由子类实现具体产品对象的创建。
  • 结构型模式
  1. 适配器模式:适配器指将某种接口或数据结构转换为客户端期望的类型,使得不兼容的类或对象能够一起协作。
  2. 桥模式:桥使用组合关系将代码的实现层和抽象层分离,让实现层与抽象层代码可以分别自由变化。
  3. 组合模式:组合是指使用组合和继承关系将聚合体及其组成元素分解成树状结构,以便客户端在不需要区分聚合体或组成元素类型的情况下使用统一的接口操作它们。
  4. 装饰器模式:装饰器通过包装的方式向目标对象中动态地添加或删除功能。
  5. 门面模式:门面向客户端提供使用子系统的统一接口,用于简化客户端使用子系统的操作。
  6. 享元模式:享元模式采用共享方式向客户端提供数量庞大的细粒度对象。
  7. 代理模式:代理是用于控制客户端访问目标对象的占位对象。
  • 行为模式
  1. 责任链模式:责任链是指将客户端请求处理的不同职责对象组成请求处理链。
  2. 命令模式:命令将类的业务行为以对象的方式封装,以便实现行为的参数化、撤销或重做等需求。
  3. 解释器模式:解释器是用于表达语言语法树和封装语句解释行为的对象。
  4. 迭代器模式:迭代器能够在不暴露聚合体内部表示的情况下,向客户端提供遍历聚合元素的方法。
  5. 仲裁者模式:仲裁者可以封装和协调多个对象之间的耦合交互行为,以减弱这些对象之间的耦合关联
  6. 备忘录模式:备忘录用于在不破坏目标对象封装特性的基础上,将目标对象内部的状态存储到外部对象中,以备之后恢复状态时使用。
  7. 观察者模式:观察者指当目标对象状态发生变化后,对状态变化事件进行响应或处理的对象。
  8. 状态模式:状态指状态对象,用于封装上下文对象的特定状态行为,使得上下文对象在内部状态改变时能够改变其自身的行为。
  9. 策略是用于封装一组算法中单个算法的对象,这些策略可以相互替换,使得单个算法的变化不影响使用它的客户端。
  10. 模板方法模式:模板方法用来定义算法的框架,将算法中的可变步骤定义为抽象方法,指定子类实现或重写。
  11. 访问者模式:访问者用于封装施加在聚合体中聚合元素的操作,从而使该操作从聚合对象中分离出来,在不对聚合对象产生影响的前提下实现自由扩展。

心得体会:
在未学习设计原则和设计模式前,编写代码不规范、简洁。不遵循设计原则,即使实现了相应的功能,但后期的迭代和维护将是灾难性的。通过对设计原则和设计模式的学习,让我进一步明白了,遵循相应的原则才能写出“更好的代码”。借鉴前人的经验能让自己少走一些弯路,这也是设计原则的意义所在。

截图

posted @ 2022-03-05 18:30  -GuHH-  阅读(103)  评论(0)    收藏  举报