领域建模(只需2分).pptVIP

  • 1
  • 0
  • 约9.83千字
  • 约 36页
  • 2024-04-02 发布于四川
  • 举报

*在上图中,我们发现了一个新的概念:订单分发系统orderfulfillmentanddispatch而ShippingFulfillmentSystem仍然在图中保留.也许是不是我们要与之交互的系统?而外部系统总是被模型化为角色.在上图中,我们移去了Checkout.这个术语是一个动作.虽然披着名词的外衣.我们也移走了Author.它应当是一本书的一个属性.另外还有一些模糊的地方,比如:MasterBookCatalog,我们移去了Book和MasterBookCatalog之间的连接.代之以BookCatalog来代替我们也结束了一些处于混乱状态的关系.现在我们可以有力大声的说:一本书(Book)属于一个书目录(BookCatalog).一本书目录(BookCatalog)属于一个中央书目录(MasterBookCatalog).理想情况下,一个小的书目录属于一个主书目录.这种混乱的状况会越来越复杂.而我们真正所需要的是要以一种简单的方式来说出来:一本书属于一个书目录.也可能有不同的目录类型.*如果我们对网上书店钻研得越透彻,我们就会找到不同类型的图书列表.customerwishlists(顾客最喜欢图书列表),recommendationlists(推荐图书列表),RelatedBooks(相关图书列表),SearchResults(搜索结果的图书列表),而这些图书列表应该有一个共同的父类,我们看看这个泛化关系.让我们这样来读这个图:一个图书列表里有书,相关的图书是一个图书列表.推荐列表是一个图书列表.最喜欢的列表是一个图书列表.搜索结果是一个图书列表.*如果我们对网上书店钻研得越透彻,我们就会找到不同类型的图书列表.customerwishlists(顾客最喜欢图书列表),recommendationlists(推荐图书列表),RelatedBooks(相关图书列表),SearchResults(搜索结果的图书列表),而这些图书列表应该有一个共同的父类,我们看看这个泛化关系.让我们这样来读这个图:一个图书列表里有书,相关的图书是一个图书列表.推荐列表是一个图书列表.最喜欢的列表是一个图书列表.搜索结果是一个图书列表.*第一次我们找出的实体对象归纳,筛选有一些条目不是必须的,因为这些条目超出了我们域模型的范围.他们的行为被伪装成为了名词.下面我们一步步的把他们筛选出来:比如Customer(顾客)和CustomerAccount(顾客帐户)是完成相同的概念.但是他们代表不同的东西,因为顾客帐户是存储在数据库中的实体,而顾客是一个用户角色.Customer和Sellers是两个角色,他们会被放在用例文本中.术语UserAccount和CustomerAccount也是相同的概念,所以我们任选其中一个,所以我们选择一个”CustomerAccount”.术语ListofAccounts和MasterAccountList也是相同的.所以我们放弃一个选择一个.因为我们有一个归纳,筛选我们选择MasterAccountList术语Bookreview和ReviewComment也是一个相同的概念,我们选择Bookreview.对于目录我们有几个候选项目:BookCatalog,BookList,Mini-catalog和Mastercatalog而目录catalog和List列表是两个不同的概念.事实上,好像需求看起来想要告诉我们不同的东西.如果有什么疑问,请向你的客户询问,除非你得到一个明确的答案,否则你要一直和你的客户沟通.BookCatalog和MasterCatalog事实上也是相同的概念.我们选择其中一个MasterCatalog.因为它和Mini-Catalog形成了鲜明的对比.而同时BookList针对不同列表的一个术语.归纳,筛选而MasterCatalog和MasterBookCatalog也是相同的概念.我们留下MasterBookCatalog网络Internat是一般性的概念,和我们的问题域无关.Password这个术语含义太小,不能成为一个对象.它会在一个UI界面中显示.我们将它从域模型中移走.如果我们要包含所有的UI元素到域模型中,那么好像我们打开了一个潘多拉盒子无法安宁.Book和BookDetails也是一对相同的概念,我们选择其中一个Book.它比BookDetails更加简明扼要.Ite

文档评论(0)

1亿VIP精品文档

相关文档