知识卡片
视频网站案例:四个角色驱动的用例分析与抽象用例
内容
案例分析用一个作者熟悉的产品——线上收费视频网站(类似cleancoders.com)——把全书设计原则整合起来演示。产品设定很简单:个人用户可以在线支付后直接观看视频,也可以多付一笔费用永久下载;企业用户只能在线播放,但可以批量购买获得折扣;个人用户通常既是购买者又是观看者,企业用户购买视频通常是给别人看的;视频作者负责上传视频、写简介、附带习题作业答案源代码等资料;管理员负责新建播放列表、增删列表里的视频、为各种许可类型设置价格。系统架构设计的第一步是识别系统中的角色和用例——这个产品里有四个角色(个人购买者/观看者、企业购买者、视频作者、管理员),按SRP原则,这四个角色将成为系统变更的主要驱动力:每次新增或修改功能,本质都是在为这四个角色中的某一个服务,因此该对系统做分区处理,避免一个角色的变更需求波及另一个角色。用例分析图里还出现了虚线框起来的抽象用例——负责设置通用策略、交由具体用例复用,比如”查看目录”这个抽象用例同时被”购买者查看目录”和”观看者查看目录”继承实现:这层抽象并非绝对必需(没有它产品照样能运作),但因为两个具体用例足够相近,用某种方式合并分析是合理的。
参考来源
- 位置:《架构整洁之道》第33章《案例分析:视频销售网站》"产品""用例分析"(源文件:_epub-src/text/part0015_split_003.html)
- 结论依据:原文描述视频网站的四种角色(个人用户/企业用户/视频作者/管理员)及其驱动系统变更的SRP依据,并说明"查看目录"这类抽象用例如何被"购买者查看目录""观看者查看目录"两个具体用例继承复用,直接支撑本卡片结论。
- 原始内容:如你所见,图中显然存在着四个角色。根据单一职责原则(SRP),这四个角色将成为系统变更的主要驱动力……我们称之为抽象用例,它们通常用来负责设置通用策略,然后交由其他具体用例来使用。