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

核心概念

概念 含义说明
对象(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

  • 负责从数据库中查询用户信息,进行登录校验。
相关推荐
高旭的旭26 分钟前
图解 Android 系统架构:从 App、Framework、HAL 到 Linux 驱动
android·linux·系统架构
solihawk2 小时前
架构系列之软件架构设计基本概念
系统架构
ABB自动化3 小时前
ABB 500CIM06 (1MRB150077R0111) | REB500 通信接口
大数据·分布式·系统架构·系统安全·模块测试·plc 控制器
youandyouyou4 小时前
局域网视频会议系统架构拆解与私有化部署实践
系统架构·音视频·网络通信
2601_965384264 小时前
从系统架构与微环境视角,拆解“口臭”的底层成因
系统架构
各类产品分享8 小时前
工业现场 AR 巡检系统架构设计与落地实践
系统架构·ar·ar巡检
我命由我123451 天前
软件工程概念 - 可插拔性
java·后端·学习·java-ee·系统架构·软件工程·学习方法
Vitaliy Kostrov(柯维远)1 天前
客户端如何检查直播流:从流内标记到停止播放
android·运维·服务器·驱动开发·网络安全·系统架构·cdn
黄俊懿2 天前
【架构师从入门到进阶】第六章:服务集群优化——第八节:线程数公式
java·服务器·数据库·分布式·性能优化·架构·系统架构
黄鹂鸟科技2 天前
软件定制开发设计要点:从需求梳理、原型确认到敏捷交付与持续维护
后端·物联网·系统架构