软件体系结构——设计模式概述

设计模式概述

设计模式(Design Patterns)参考:设计模式 | 菜鸟教程 (runoob.com)

测试:\textcolor{red}{测试:}学完设计模式之后会有第二次随堂测试

1
2
==:判断的是内存
equal:比较的是内容

考试中的设计模式名称均以英文名的方式呈现

桥接模式:

image-20221107195453733

策略模式:

详细参考:策略模式 | 菜鸟教程 (runoob.com)

策略类:用来封装算法的类

适配器模式:

适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。

关键:\textcolor{red}{关键:}在Adapter 类中创建接口对象,接口对象在new对象的时候可以使用其子类进行替换。

从适配器模式的Adapter 类可以看出,接口对象是可以被实现接口的类替换掉的,类似于子类替换父类。

参考:适配器模式 | 菜鸟教程 (runoob.com)

  1. 类适配器模式

    • 继承(extend)一个类,再实现(implement)一个接口
  2. 对象适配器模式(使用更多)

    • 使用更多的原因:
      • java不支持多重继承,所以至多能继承一个类,而与其它类只能通过关联关系来实现将多个类的联系
      • final类不支持继承

单例模式:

是目前最大的设计模式。

关键:\textcolor{red}{关键:}构造函数私有

详细参考:单例模式 | 菜鸟教程 (runoob.com)

软件模式

在一定条件下的软件开发问题及其解法

image-20221109190208258
  • 问题描述

  • 前提条件(环境或约束条件)

  • 解法

  • 效果

大三律(Rule of Three)

只有经过3个以上不同类型(或不同领域)的系统的校验,一个解决方案才能从候选模式升格为模式。

image-20221109190929244

模式必须具有通用性。

  • 设计模式

  • 架构模式(关注如何分层)

    • 如:MVC模式

设计模式的定义

普遍定义:设计模式
  1. 一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结

  2. 目的:为了可重用代码、让代码更容易被他人理解、提高代码的可靠性

  3. 是一种用于对软件系统中不断重现的设计问题的解决方案进行文档化的技术

  4. 是一种共享专家设计经验的技术

GoF的定义
image-20221109192758915
策略模式示意图:
image-20221109192947596
设计模式的基本要素
  1. 模式名称 (Pattern Name)

  2. 问题 (Problem)

  3. 解决方案 (Solution)

  4. 效果 (Consequences)

设计模式的分类
根据目的分类:

1️⃣根据目的(模式是用来做什么的)可分为==创建型(Creational),结构型(Structural)和行为型(Behavioral)==三类:

  • 创建型模式主要用于创建对象-5

  • 结构型模式主要用于处理类或对象的组合-7

  • 行为型模式主要用于描述类或对象如何交互和怎样分配职责-11

5+7+11=23个设计模式

image-20221109194722284
根据范围分类:

2️⃣根据范围,即模式主要是处理类之间的关系还是处理对象之间的关系,可分为类模式对象模式两种:

  • 类模式处理类和子类之间的关系,这些关系通过继承建立,在编译时刻就被确定下来,是一种静态关系

  • 对象模式处理对象间的关系,这些关系在运行时变化,更具动态性

    • 类图中存在关联关系

创建型模式

image-20221109200309740

结构型模式

image-20221109200326749

行为型模式

image-20221109200341149
设计模式的优点

image-20221109200529292

大部分设计模式都有抽象层,但单例模式没有抽象层。

  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2023-2024 Guijie Wang
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信