在我当前的项目(电子商务网站)中,我们有不同的限界上下文,例如:结算过程中的计费、交付或付款。
最重要的是,根据客户将购买什么,结帐过程会有所不同。因此,根据她购物车的内容,结帐过程中的步骤数可能会有所不同,否则我们不会/不会询问她某些信息。
那么是否应该为每种不同类型的结帐流程创建不同的有界上下文?
例如,Order 聚合根将根据结帐流程而有所不同 EticketsOrder(在这种情况下,我们不需要送货地址,因此我们不会向用户询问) Ticket BillingAddress
ClothesOrder (在这种情况下,我们需要一个送货地址,并且在结帐过程中将有一个额外的步骤来获得这个) Clothes BillingAddress DeliveryAddress
这种分离将意味着创建两个不同的域实体,即使它们具有相似的属性。
模拟此类问题的最佳方法是什么?如何找到上下文边界?