系统架构设计(六):面向对象设计

核心概念

概念 含义说明
对象(Object) 现实世界事物的抽象表示,包含属性(状态)和方法(行为)
类(Class) 一类对象的抽象模板
继承(Inheritance) 子类继承父类的属性和行为,实现代码复用
封装(Encapsulation) 将数据与操作封装在一起,隐藏实现细节,提供接口
多态(Polymorphism) 同一接口,不同实现,提高扩展性与灵活性
抽象(Abstraction) 抽取共性,屏蔽复杂实现,关注接口而非实现

本系统采用面向对象设计思想(OOD) ,通过对业务实体的抽象建模,提高系统的可复用性、可扩展性和可维护性。主要体现在以下方面:

  1. 对象建模 :将系统中的关键业务元素抽象为类(如用户、订单、支付等),每个类包含其属性和操作,体现高内聚;
  2. 封装性设计:对外提供公共接口,内部数据通过 getter/setter 控制访问,保护类内部状态;
  3. 继承结构优化:通过父类抽取共性方法,子类继承并重写,减少冗余代码;
  4. 多态使用 :接口 + 实现类组合,便于后续增加新行为而无需修改原有代码,实现开闭原则;
  5. 使用设计模式:如采用工厂模式实现对象创建,策略模式实现算法切换,增强灵活性。

主要原则(五大原则 SOLID)

原则 含义与目的 典型应用
S - 单一职责原则 每个类只负责一项功能 控制类拆分、低耦合
O - 开闭原则 对扩展开放,对修改关闭 使用接口、多态
L - 里氏替换原则 子类可以替换父类,功能不受影响 避免违反继承契约
I - 接口隔离原则 不应强迫类依赖它不使用的方法 拆分接口
D - 依赖倒置原则 面向抽象编程,依赖接口而非具体实现 依赖注入、工厂模式

面向对象设计模式(可用于写作题举例)

类别 模式名称 典型用途
创建型 工厂方法、单例、建造者 控制对象创建过程
结构型 适配器、桥接、装饰、代理 简化结构,解耦对象
行为型 策略、观察者、状态、模板 控制行为变化、通信

类图(UML)常用符号速记

  • 类图表示:+ public,- private,# protected
  • 继承:实线空心三角箭头
  • 实现:虚线空心三角箭头
  • 组合:实线菱形 → 强拥有
  • 聚合:空心菱形 → 弱拥有
  • 关联:实线 → 双方持有引用
  • 依赖:虚线 → 使用而非持有

类的类型

类的分类方式概述

在面向对象设计中,根据类的职责、作用和结构功能,常将类划分为以下几种典型类型:

类别 定义/说明 示例
实体类(Entity) 用于封装系统中与业务对象相关的数据和行为 订单类、学生类、账户类
控制类(Control) 负责处理业务逻辑,协调实体类与界面类的交互 订单管理类、支付处理类
边界类(Boundary) 负责与系统外部交互,如用户界面、外部系统接口 用户界面类、API 网关类
抽象类(Abstract) 不可实例化,仅用于继承和统一接口 抽象图形类(Shape)、接口类
工具类(Utility) 提供通用静态方法,无状态、无对象行为 StringUtil、DateHelper
数据访问类(DAO) 专门用于访问数据库,负责 CRUD 操作 UserDAO、OrderDAO
配置类 封装系统配置、参数信息 Config、Settings

核心三类(UML中常见分类)

在 UML 和面向对象分析设计(如 OOA/OOD)中,最常见的是"实体类、边界类、控制类"三类角色划分,如下:

实体类(Entity Class)

  • 职责:负责封装业务对象的属性和行为;
  • 特点:通常与数据库表结构一一对应;
  • 示例 :Customer、Invoice、Product 等;
  • 在类图中:通常较为核心,具有属性与方法。

边界类(Boundary Class)

  • 职责:用于处理系统与外部(如用户、设备、系统)之间的交互;
  • 表现形式:GUI 界面类、API 接口类;
  • 示例 :LoginPage、PaymentAPI;
  • 在用例图中:常与参与者关联。

控制类(Control Class)

  • 职责:负责处理用例的执行逻辑,协调边界类和实体类;
  • 特性:业务流程的调度者;
  • 示例 :OrderProcessor、PaymentController;
  • 设计建议:一个控制类对应一个或一组用例。

示例

请说明系统中"客户登录"用例可涉及哪些类类型,并说明其职责。

解答:

边界类 :LoginUI

  • 用于接收用户输入的用户名和密码,与用户交互;
  • 显示登录结果信息。

控制类 :LoginController

  • 接收来自 UI 的请求,负责协调验证流程;
  • 调用实体类与数据库进行认证处理。

实体类 :User

  • 表示用户对象,封装用户名、密码、权限等信息;
  • 提供密码校验等方法。

数据访问类 :UserDAO

  • 负责从数据库中查询用户信息,进行登录校验。
相关推荐
长不大的杨瑞杰3 天前
ChatGPT 广告技术栈架构拆解:多轮意图、LLM 工具编排、ANN 召回与拍卖闭环
人工智能·chatgpt·系统架构·推荐系统·广告
艺杯羹4 天前
Windows原生软件锁设计:从暴力杀进程丢数据到零轮询事件驱动架构
windows·系统架构·开源·开源软件·内存管理·开源协议
jktantan4 天前
注解式脱敏:用 Jackson 的 ContextualSerializer 做字段级策略(一)
spring boot·后端·算法·spring cloud·系统架构
艺杯羹6 天前
MCP本地服务集成避坑:从Stdio管道僵死到双向JSON-RPC稳健通信
人工智能·python·ai·系统架构·大语言模型·ai编程·mcp
奇树谦6 天前
Qt Quick 图片加载与 GPU 纹理机制详解:QImage、QQuickTextureFactory、QSGTexture 与异步加载
开发语言·qt·系统架构
无心水6 天前
24、系统架构师论文写作专题 核心考点与学习笔记
笔记·学习·系统架构·架构师·安全架构·软考架构师·软考系统架构设计师
拆房老料8 天前
DeepSeek Super-agent 架构解析:从单任务 Agent 到持续运行的任务系统
人工智能·设计模式·系统架构
Jmyd01238 天前
文物3D数字化的技术选型指南:从WW/T 0115标准到落地工程,一次讲透采集、建档、管理与展示
3d·系统架构·博物馆·数字展厅·博物馆数字化
薛定谔的猫-菜鸟程序员8 天前
软件架构设计师开发资料大全(从入门到精通)
后端·python·系统架构·flask·架构设计师
被放养的研究生9 天前
第一章 信息系统架构
系统架构·金融监管计算机类