OOD 面向对象设计 (Object-oriented design)
OOD概念
面向对象设计(Object-Oriented Design,OOD)方法是面向对象程序设计方法中一个环节。
主要作用: 对分析模型进行整理,生成设计模型提供给OOP作为开发依据。
主要内容:
-
概念架构(Conceptual Architecture)是对架构设计进行整体的、高层系统设计。
输入: 需求阶段产出
目的: 为了找出类
表现形式: 用例图,流程分析,体系结构设计。 -
领域模型(domain model)可以被看作是一个系统的概念模型,用于以可视化的形式描述系统中的各个实体及其之间的关系。
表现形式: 类图(必须) 和 状态机图(非必须)
目的: 为了写代码
实例:接龙管家小程序 OOD 方案
接龙管家官网:https://jielong.co/
1. 用例及使用流程分析
1.1 用例图
系统用例图建模如图1-1所示:
图1-1 接龙管家小程序用例图
1.2 流程分析
使用流程分析:首先系统管理员要提前添加接龙模板。表单创建者进入系统首先选择从空模板自定义创建接龙或者使用已有接龙模板创建接龙,然后范围选择需要参加接龙的人员,并且设置接龙管理人员(可不设置)。完成上述步骤之后选择保存草稿至本地或发布接龙。如若发布接龙,则发送信息至每一位需要参与接龙的人员,参与者可通过信息中包含的链接进入接龙,并根据要求进行接龙,普通参与者可查看自己的接龙数据,管理员可选择让普通参与者能否查看所有数据,提交接龙之后管理者可释放修改接龙的权限或者禁止修改,参与者按要求进行操作。表单创建者以及管理员在接龙时间完成之后查看并导出接龙数据。
2. 领域模型
2.1 类图
系统概念类图建模如图2-1所示:
图2-1 接龙管家小程序概念类图
2.2 状态机图
系统的关键对象为接龙表单。其状态机图建模如图2-2所示:
图2-2 接龙表单对象状态机图
3. 体系结构设计
系统总体上划分为客户端模块和服务器端模块。客户端模块主要负责用户界面显示和业务逻辑处理。服务器端模块负责数据的持久化和数据访问。
系统采用分层体系结构风格,总体上分为3层(展示层、业务逻辑层、数据层)。展示层包含 GUI 页面的实现,业务逻辑层包含业务逻辑处理的实现,数据层负责数据的持久化和访问。分层体系结构的逻辑视角和逻辑设计方案如图3-1和图3-2所示。
图3-1 软件体系结构逻辑视角示意图
图3-2 软件体系结构逻辑设计方案
4. 设计类图及必要的动态模型建模
4.1 设计类图
系统设计类图建模如图4-1所示:
图4-1 接龙管家小程序设计类图
4.2 顺序图
系统的关键用例为创建接龙表单和创建群组。
创建接龙表单用例的顺序图建模如图4-2所示:
图4-2 创建接龙表单用例顺序图
创建群组用例的顺序图建模如图4-3所示:
图4-3 创建群组用例顺序图
5. 设计类图优化
5.1 优化原则
优化原则一:针对接口编程。初始设计类图未实现接口,在类与类之间的访问时,要求只访问对方的接口,可以降低访问耦合。
优化原则二:接口分离原则(ISP原则)。在设计接口时遵循接口隔离原则(ISP),将不同接口分离,提高系统的内聚度,降低系统耦合度。
优化原则三:单一职责原则。高内聚类应该是功能内聚的,初始的设计类图控制类不符合。
5.2 优化方案
优化后的设计类图如图5-1所示:
图5-1 优化后的设计类图