端口和适配器——接口是否应该将参数指定为域对象?
Ports and Adapters – Should interfaces specify arguments as domain objects?
指定端口时,该接口是否应该根据域对象定义它的参数,例如
interface AddUser {
firstName: FirstName
lastName: LastName
}
和简单或“普通”类型,例如
interface AddUser {
firstName: string
lastName: string
}
我的第一个想法是,将它们定义为领域对象意味着如果领域模型发生变化,实施适配器将不得不改变。但是实现适配器必须更改 不管 接口的参数是如何定义的,即使参数是“普通类型”,不是吗?使用“普通类型”仅意味着我必须将传入的参数解析为域类型。
但是,使用域类型意味着当我将数据传递到端口时,我知道数据的格式是正确的。它也没有违反依赖应该向内的想法。
端口和适配器没有说明如何定义API。是否希望应用程序向外界公开域对象取决于您。
指定端口时,该接口是否应该根据域对象定义它的参数,例如
interface AddUser {
firstName: FirstName
lastName: LastName
}
和简单或“普通”类型,例如
interface AddUser {
firstName: string
lastName: string
}
我的第一个想法是,将它们定义为领域对象意味着如果领域模型发生变化,实施适配器将不得不改变。但是实现适配器必须更改 不管 接口的参数是如何定义的,即使参数是“普通类型”,不是吗?使用“普通类型”仅意味着我必须将传入的参数解析为域类型。
但是,使用域类型意味着当我将数据传递到端口时,我知道数据的格式是正确的。它也没有违反依赖应该向内的想法。
端口和适配器没有说明如何定义API。是否希望应用程序向外界公开域对象取决于您。