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

核心概念

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

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

边界类(Boundary Class)

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

控制类(Control Class)

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

示例

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

解答:

边界类LoginUI

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

控制类LoginController

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

实体类User

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

数据访问类UserDAO

  • 负责从数据库中查询用户信息,进行登录校验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值