临时整理软件架构知识点笔记

考试相关知识点

涵盖了面向对象设计原则5种创建型模式4种结构型模式4种行为型模式以及软件架构的核心考点。


第一部分:软件设计模式 (Software Design Patterns)

一、 面向对象设计原则 (Chapter 2)

这是设计模式的基石,考试中常考查原则的定义、判断某段代码是否违背原则,或如何利用原则改进设计。

  1. 单一职责原则 (SRP)

    • 核心:一个类只负责一个功能领域中的相应职责(高内聚)。

    • 目的:降低类的复杂度,提高可读性和可维护性。

  2. 开闭原则 (OCP)

    • 地位最重要的原则,是可复用设计的基石。

    • 定义:软件实体对扩展开放,对修改关闭

    • 实现:通过抽象化(接口/抽象类)实现。

  3. 里氏代换原则 (LSP)

    • 定义:所有引用基类的地方必须能透明地使用其子类的对象。(子类必须能够替换掉它们的父类)。

  4. 依赖倒转原则 (DIP)

    • 定义:抽象不应依赖于细节,细节应依赖于抽象。即针对接口编程,而不是针对实现编程。

  5. 接口隔离原则 (ISP)

    • 定义:使用多个专门的接口,而不使用单一的总接口。(接口要在“角色”上进行隔离)。

  6. 合成复用原则 (CRP)

    • 核心:优先使用组合/聚合关系,尽量少用继承。

    • 原因:继承是“白箱”复用(破坏封装),组合是“黑箱”复用。

  7. 迪米特法则 (LoD)

    • 别名:最少知识原则。

    • 定义:一个软件实体应当尽可能少地与其他实体发生相互作用。(只与直接的朋友通信)。


二、 创建型模式 (Creational Patterns)

关注对象的创建过程,将对象的创建与使用分离。

模式名称 核心定义 & 考点 典型实例 (课件)

简单工厂


(Simple Factory)

定义:一个工厂类根据参数不同返回不同类的实例。


考点:静态工厂方法;违背开闭原则(加新产品需改工厂代码)。

图表库、权限管理

工厂方法


(Factory Method)

定义:定义创建接口,让子类决定实例化哪一个类。


考点符合开闭原则;多态性;通过反射配置文件(XML)实现灵活配置。

日志记录器


(File/DB Logger)

抽象工厂


(Abstract Factory)

定义:创建一系列相关或相互依赖的对象(产品族)。


考点产品族 vs 产品等级结构开闭原则的倾斜性(加产品族容易,加产品等级结构难)。


界面皮肤库


(Spring/Summer皮肤)

原型模式


(Prototype)

定义:通过**复制(Clone)原型实例来创建新对象。


考点:Cloneable接口;浅克隆 (只复制值类型) vs 深克隆 (通过序列化复制引用类型);原型管理器。


工作周报复制


孙悟空拔毛

单例模式


(Singleton)

定义:保证一个类仅有一个实例**,并提供全局访问点。


考点:私有构造器;饿汉式 (类加载即创建) vs 懒汉式 (双重检查锁定 Double-Check Locking);静态内部类 (Holder);枚举单例 (最佳实践)。

任务管理器


负载均衡器


三、 结构型模式 (Structural Patterns)

关注类或对象的组合,形成更大的结构。

模式名称 核心定义 & 考点 典型实例 (课件)

适配器模式


(Adapter)

定义:将一个接口转换成客户希望的另一个接口。


考点对象适配器 (推荐, 关联关系) vs 类适配器 (继承关系);缺省适配器 (抽象类空方法);双向适配器。

仿生机器人


加密适配

组合模式


(Composite)

定义:树形结构表示“部分-整体”,让客户统一对待个别对象和组合对象。


考点透明组合 (接口全,不安全) vs 安全组合 (接口少,不透明);递归结构。


文件系统


杀毒软件

外观模式


(Facade)

定义:为子系统提供统一的入口(门面)。


考点:体现迪米特法则;降低耦合;抽象外观类(用于支持子系统切换)。

文件加密系统


(读+加密+写)

代理模式


(Proxy)

定义:提供占位符以控制对对象的访问。


考点远程代理 (Remote);虚拟代理 (Virtual, 延迟加载/优化性能);保护代理 (权限控制)。

论坛权限控制


图片预加载


四、 行为型模式 (Behavioral Patterns)

关注对象之间的职责分配和交互。

模式名称 核心定义 & 考点 典型实例 (课件)

命令模式


(Command)

定义:将请求封装为对象。


考点解耦请求发送者与接收者;支持撤销(Undo)/恢复(Redo)宏命令 (组合模式应用)。

自定义功能键


简易计算器

迭代器模式


(Iterator)

定义:顺序访问聚合对象元素而不暴露内部表示。


考点:分离遍历与存储职责;Java中的内部类实现 (可访问外部类私有数据)。


电视机遥控器

策略模式


(Strategy)

定义:封装一系列算法,使其可互换。


考点消除if-else/switch语句;算法独立于客户;环境类(Context)与策略类。

电影票打折


排序算法选择

观察者模式


(Observer)

定义:一对多依赖,状态变动自动通知。


考点:Subject(目标)与Observer(观察者);触发链;JDK支持 (Observable/Observer);MVC中的应用。


战队联动作战


股票系统


第二部分:软件架构 (Software Architecture)

根据课件(第0、1、6、7章),重点掌握以下架构风格及概念:

1. 软件架构定义

  • 公式:软件架构 = 构件 (Components) + 连接件 (Connectors) + 约束 (Constraints)。

  • 作用:需求与设计之间的桥梁,关注系统总体结构。

2. 经典软件架构风格 (Chapter 7)

  • 管道-过滤器 (Pipe-Filter)

    • 构件为过滤器,连接件为管道。

    • 特点:支持重用,易于维护,但交互性差。(典型:Unix Shell, 编译器)。

  • 面向对象风格 (Object-Oriented)

    • 构件为对象,连接件为方法调用。

    • 特点:封装、继承、多态。

  • 事件驱动系统 (Event-Based)

    • 特点:隐式调用,构件不直接调用过程,而是触发事件。(典型:GUI应用)。

  • 分层系统 (Layered)

    • 特点:每层只为上层提供服务。(典型:OSI七层模型, TCP/IP)。

  • 仓库系统 (Repository)

    • 特点:由中心数据驱动。

    • 子类:黑板模式 (Blackboard) —— 适用于信号处理、语音识别(知识源+黑板+控制器)。

3. C/S 与 B/S 架构

  • C/S (Client/Server):胖客户端,响应快,但维护成本高(需安装客户端)。

  • B/S (Browser/Server):瘦客户端(浏览器),零维护,但交互性稍弱,安全性稍差。

  • 混合模型:企业内部用C/S(重交互),外部用B/S(重查询)。

4. MVC 架构 (重点)

  • 组成

    • Model (模型):业务逻辑与数据(对应观察者模式中的目标 Subject)。

    • View (视图):界面显示(对应观察者模式中的观察者 Observer)。

    • Controller (控制器):处理用户交互,分发请求。

  • 原理:Model状态改变 -> 通知View自动更新。实现数据与表现的分离。

posted @ 2025-12-30 10:18  BKYNEKO  阅读(0)  评论(0)    收藏  举报