0

我对 Typescript 没有太多经验,也没有用它实现架构模式,但我们正在一个项目中工作,我们想使用 Clean Architecture,但我对使用classinterface声明 DTO 和域对象有疑问。

我的假设是,Domain Objects拥有它是一个好主意,class因为它们可以在其中包含业务逻辑。例子:

export class Person {
  id: string;
  firstName: string;
  lastName: string;
  title: string;

  constructor() {}
  
  someBusinessLogic() {
    // Implement some business logic
  }

但是对于DTO,因为他们不应该有任何逻辑,我正在使用interface

export interface PersonEntityDto {
  id: string;
  firstName: string;
  lastName: string;
  title: string;
  updatedAt: string;
  createdAt: string;
}

我对吗?

4

1 回答 1

0

是的,你的假设是正确的。但是“官方”规则并没有拒绝为域对象使用接口,在某些情况下接口很有用。我的建议是,如果你使用接口,你应该尊重 Liskov 原则。

于 2021-03-31T10:35:49.890 回答