没有直接关系
CRC 卡和用例是两种独立的技术:
开始派生具有间接关系的类
使用实体控制边界技术可以将用例映射到类。让我们想象一个演员Sales admin
和一个用例Manage products
:
- 每个用例都映射到特定的控制类,例如
ManageProduct
;
- 参与者和用例之间的每个链接都映射到一个边界类,例如
ManageProductsForSalesAdmin
;
- 对参与者重要的已识别业务对象也映射到实体类,例如
Product
.
使用 CRC 卡微调设计
这可能是 3 个第一个 CRC 卡的开始,它将阐明什么类做什么(包括 UI 和 DB 持久性)。您很快就会发现这些初始的“分析类”需要进一步分解和丰富。
例如:
- 根据您喜欢的框架,用户界面可能需要不同的类。因此,将分解
ManageProductsForSalesAdmin
分解为更详细的类,例如ManageProductsView
和ManageProductsListener
或任何需要的类。如果初始卡的所有职责都转移到新卡上,您可以将其停用。
- 您可能会突然意识到 a与 a
Product
相关联ProductCategory
:使用新发现的实体的新 CRC 卡来丰富您的集合。
- 这
ManageProducts
可能需要一些专业知识来处理不同的行为,例如CreateProduct
, DuplicateProduct
, ChangeProduct
, DeleteProduct
. 最初的卡片可能会保留一些共同的责任,并与更专业的卡片共存。
您可以继续丰富您的 CRC 集并玩牌,直到您对课程感到满意并达到稳定的职责划分。CRC 是迭代工作的理想选择;-)
EBC 方法的主要好处是它能够将类与用例相关联。这不仅是理论上的好处,而且是非常实用的:如果你改变一个类,你可以很容易地确定对用户的潜在影响(以及测试的注意点)。因此,每次创建新的 CRC 卡时,您都可以简单地跟踪相关用例。
关于用例的最后一句话:“系统更新页面”不是用例:这不是参与者的目标。这是系统必须在更大的上下文中执行的一些操作。
PS:对不起,如果这可能会迟到你的考试