DTO是否属于装饰者模式?

Does DTOs comes under decorator pattern?

我在两个不同的实体和 DTO 包中定义了实体和 DTO 类:

@Entity
@Table(name="Foo", schema="REF_DATA")
public class Foo extends BaseEntity {
 private Long fooId;
 private String fooName;
}


public class FooDto extends BaseDto {
 private Long fooId;
 private String fooName;
}

在向用户返回值时,我们返回 DTOs 而不是 Entity 对象。为此,我们将映射器及其实现声明为:

public interface DomainToDtoMapper<E extends BaseEntity, D extends BaseDto> {

   D mapDomainToDto(E domain);
}

public class FooDomainToDtoMapper implements DomainToDtoMapper<Foo, FooDto> {
    @Override
    public FooDto mapDomainToDto(Foo domain) {
        FooDto fooDto = new FooDto();
        FooDto.setfooId(domain.getfooId());
        FooDto.setfooName(domain.getfooName());
        return fooDto;
    }

}

并获取服务层中所有 Foo 对象调用的列表类似于:

@Override
public List<FooDto> getAllFoo() {
    return fooRepository.findAll().stream()
            .map(FooEntityDomainToDtoMapper::mapDomainToDto) // mapping entity to dto
            .collect(Collectors.toList());
}

我的问题是我们在这里使用 Decorator pattern 吗?我知道有 Data Transfer Object Pattern 但由于我们提供映射的实现,我们可以说它是装饰器模式吗?还是这里使用了其他设计模式?

不是装饰器模式,因为装饰器模式

allows behavior to be added to an individual object, dynamically, without affecting the behavior of other objects from the same class.

因为你映射到另一个 class 它是不一样的 class。