目录
文章目录
因为详细设计文档在内网里,所以复制了一份出来
1. 相关人员
- 设计人员:王耀
2. 需求背景
- 需按照共享平台和101教育平台的规范进行设计与开发
- 应用管理组件,主要是将社区和学习空间中的应用管理部分抽离出来,兼容后生成的组件,此后当其他项目中需要使用此组件,开发人员可以简单快捷地接入。
- 具备独立或者与其他组件同打包成为可用产品的能力。
3. 设计决策
3.1 组件设计
- 复用应用管理相关能力,节省开发维护成本,提供组件利用率。
- 独立提供应用管理和编辑的展示页面,使用工厂CMP方式启动,简化外部对接复杂度。
- 暴露请求接口,对外提供相关应用数据获取。
3.2 代码设计
- 使用状态模式,将“普通”、“编辑”状态抽象出来,便于更好的管理和扩展各种状态,提升扩展性;将复杂的逻辑判断(判断当前状态从而展示不同视图、不同行为)剔除,统一写到相关状态类中,使得代码可阅读性大大增强,可维护性也充分提升
4. UML图
4.1 用例图
4.1.1 接入方
4.1.2 用户
4.2 类图
4.2.1 状态模式部分类图
4.2.2 整体类图
4.3 时序图
4.4 状态图
5. 设计理由
5.1 使用状态模式理由
- 根据状态模式定义可知,其应用场景是在一个对象本身的状态改变时,改变它的行为。
而“应用管理对象”本身拥有“编辑”、“普通”两种状态,我们需要在切换不同状态的情况下,改变它的行为,因此可以使用状态模式。 - 其UML图结构与策略模式非常相似,这里不适用策略模式的理由是,策略模式的策略可以由外部决定,而状态模式的状态是对象内部自己拥有的,无法由外部更改。
5.2 整体设计理由
- 运用面向对象思想,为常用应用以及分组应用分别创造一个类,负责管理常用、分组应用相关的所有行为和属性。
- 维护应用级别状态管理类(static),管理常用应用是否已满、是否是编辑模式等状态。
- 运用状态模式,管理“普通”、“编辑”两种不同状态,使代码易维护、易扩展,同时增加可读性。