OHS ...开放主机服务
AL ...应用层
ACL ... AntiCorruption Layer
BC ...有界上下文
1.
当我们的OHS的公共接口只能被外部 BC用来调用我们的系统时,我将使用单向一词,但我们的 BC 不能用它来调用外部系统
同样,当我们的OHS的公共接口可以被外部 BC用来呼叫我们的系统时,我将使用术语双向,但我们的 BC 也可以使用它来调用外部系统
a)OHS 是单向的还是双向的?我会说它只能是单向的吗?
b)同样,AL 是单向的还是双向的?我会说它只能是单向的吗?
2.我认为OHS不会取代AL,而是取代应用服务/ AL?
3.
a)OHS是否也应用于属于同一应用的BC之间的通信,还是仅用于与外部 BC的通信?无论答案是什么,请详细说明你的推理?
b)假设BC相互通信是同一个应用程序的一部分,并假设我们不使用OHS - 这些BC是否应该 …
子类型的实际前提是通过(使用逻辑组合创建的OR)的基类型的先决条件和亚型的先决条件,这使得所得的先决条件 的限制较少
子类型的实际后置条件是通过(使用逻辑组合创建的AND)碱型的后置和一个亚型的后置条件,这使得所得的后置条件 更严格的
以下是加强前提条件和弱化后置条件的例子,因此违反了LSP(Link):
假设您的基类使用成员int.现在你的子类型要求int为正数.这是强化前置条件,现在任何在使用负数之前完全正常工作的代码都会被破坏.
同样,假设相同的场景,但基类用于保证成员在被调用后是正面的.然后子类型更改行为以允许负的int.由于不支持后置条件,因此对该对象起作用的代码(并假设后置条件为正int)现在已被破坏.
a)当重写方法削弱前提条件时,为什么它也不被视为违反LSP ,因为此方法可以使用基类型合约不可接受的参数.因此,我们不能声称违反了基本类型的合同,因此LSP也被违反了吗?
乙)为什么是不是也认为是违反LSP时覆盖的方法加强后置条件,因为客户端调用此方法将只接收的原始方法的可能结果的一个子集.因此,我们不能声称违反了基本类型的合同,因此LSP也被违反了吗?
例:
基类后置条件保证方法的返回值在范围内1-10,但子类型将后置条件更改为仅允许返回值在范围内2-9.现在,由于不支持后置条件,因此破坏了从此方法返回的对象的代码(并假设后置条件在一个范围内1-10).
inheritance liskov-substitution-principle preconditions post-conditions
1. 我们通常在DDD项目中使用以下几种类型的书面设计文件:
一个.要求规范文件
湾 文档说明的含义的核心要素
C.文档给鸟瞰的的应用程序结构
d.文档解释普遍存在的语言所使用的术语背后的含义
即 列出无所不在语言词汇的文件
F.非正式的UML图
还要别的吗?
2. 应该将哪些文档类型创建为独立文档,哪些文档类型应该组合在一个文档中(例如:包含文本包围的图表的文档)?
3.什么是需求规格?列表使用情况的列表,任务程序能够执行或者结合两者的?
谢谢
a)对于包含两个或更多个子域的BC,存在概念重叠的可能性,甚至更糟糕的是,每个子域可以不同地解释/理解相同的概念(由这些子域中的几个使用).
无论如何,如果BC确实包含许多子域,它应该提供几种无处不在的语言,每个子域一个,还是所有子域都应该共享相同的无处不在的语言?
b)我假设当一个子域跨越几个BC时,这些BC中的每一个都应该定义它自己的无处不在的语言?
谢谢
a)核心域和通用子域(GS)在大多数情况下是否包含相同域模型的不同部分,或者每个 GS是否定义了自己的域模型,这通常与核心域中使用的模型不同?
b)如果是前者,那么我认为使用相同模型的原因是因为GS的主要目的是"服务" 核心域,如果不需要在两者之间存在转换层,GS可以"服务"最佳.核心域和GS(如果每个都使用自己的模型,那么我们还需要GS和核心域之间的转换层)?
谢谢