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

参考:菜鸟教程-设计模式
摘要:设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

一、总结

软件设计的原则:

  • 1、开闭原则
    对扩展开放,对修改关闭。
  • 2、里氏代换原则
    任何基类可以出现的地方,子类一定可以出现。
  • 3、依赖倒转原则
    针对接口编程,依赖于抽象而不依赖于具体。
  • 4、接口隔离原则
    使用多个隔离的接口,比使用单个接口要好。
  • 5、迪米特法则
    一个实体应当尽量少地与其他实体之间发生相互作用,使得系统功能模块相对独立。
  • 6、合成复用原则
    尽量使用合成/聚合的方式,而不是使用继承。

软件设计的模式:

  • 1、创建型模式,包含:
    • 工厂模式:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。
    • 抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
    • 单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。
    • 建造者模式:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。
    • 原型模式:在运行期建立和删除原型。
  • 2、结构型模式,包含:
    • 适配器模式:将一个类的接口转换成客户希望的另外一个接口。
    • 桥接模式:将抽象部分与实现部分分离,使它们都可以独立的变化。
    • 过滤器模式:允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。
    • 组合模式:将对象组合成树形结构以表示"部分-整体"的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。
    • 装饰器模式:动态地给一个对象添加一些额外的职责。就增加功能来说,装饰器模式相比生成子类更为灵活。
    • 外观模式:为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
    • 享元模式:运用共享技术有效地支持大量细粒度的对象。
    • 代理模式:为其他对象提供一种代理以控制对这个对象的访问。
  • 3、行为型模式,包含:
    • 责任链模式:避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。
    • 命令模式:将一个请求封装成一个对象,从而使您可以用不同的请求对客户进行参数化。
    • 解释器模式:给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子。
    • 迭代器模式:提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。
    • 中介者模式:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
    • 备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。
    • 观察者模式:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
    • 状态模式:允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类。
    • 空对象模式:创建一个指定各种要执行的操作的抽象类和扩展该类的实体类,还创建一个未对该类做任何实现的空对象类,该空对象类将无缝地使用在需要检查空值的地方。
    • 策略模式:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。
    • 模板模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
    • 访问者模式:主要将数据结构与数据操作分离。

二、心得

在以往开发实践过程中我对于接口隔离原则比较注重,我认为软件设计需要有相对应的原则来约束行为,才能提高软件系统的可维护性和可重用性,增加软件的可扩展性和灵活性,设计人员应该尽最大努力按照原则设计软件,从而提高软件开发的效率,节省软件开发和维护的成本。

三、截图

 posted on 2022-03-05 11:46  卡卡Chika  阅读(103)  评论(0编辑  收藏  举报