问题描述
我对 Typescript 没有太多经验,也没有用它实现架构模式,但我们正在一个项目中工作,我们想使用 Clean Architecture 但我怀疑使用 class
或 {{1} } 用于声明 DTO 和 Domain 对象。
我的假设是,对于 interface
,将其作为 Domain Objects
是一个好主意,因为它们可以包含业务逻辑。示例:
class
但是对于export class Person {
id: string;
firstName: string;
lastName: string;
title: string;
constructor() {}
someBusinessLogic() {
// Implement some business logic
}
,因为它们不应该有任何逻辑,所以我正在使用DTO
:
interface
我说得对吗?
解决方法
是的,你的假设是正确的。 但是对于域对象使用接口并没有被“官方”规则拒绝,在某些情况下接口是有用的。 我的建议是,如果您使用界面,您应该尊重 Liskov 原则。