定义

为了解决不兼容问题把一个类的接口换成想要的接口

场景

有来自多个不同数据字段的接口的数据,为了统一接收这些数据就需要一个适配器

  1. // 本地资源文件上传之后的数据结构
  2. export interface ResourceLocalFileType {
  3. uuid: string;
  4. name: string;
  5. size: number;
  6. created: number;
  7. lastModified: number;
  8. resourceType: number;
  9. cancel: () => void;
  10. status: string;
  11. }
  12. // 资源概况接口返回的数据结构
  13. export interface ResourcePackageFileType {
  14. uuid: string;
  15. materialName: string;
  16. materialLink: string;
  17. materialType: number;
  18. uid?: string;
  19. ext?: string;
  20. }
  21. // 原先数据后台返回的数据接口
  22. export interface ResourceBackendFileType {
  23. uuid: string;
  24. resourceName: string;
  25. resourceLink: string;
  26. resourceType: number;
  27. version: string;
  28. ext: string;
  29. }

采用适配器模式,将不同的数据结构适配成展示组件所能接受的数据结构

  1. export interface AdapterResourceType {
  2. uuid: string;
  3. created: number;
  4. fileNo: number;
  5. fileName: string;
  6. fileOrigin: string;
  7. fileStatus: string;
  8. fileInfo: {
  9. type: number;
  10. size?: number;
  11. [key: string]: any;
  12. };
  13. // 本地图片额外操作
  14. action?: {
  15. cancel?: () => void;
  16. [key: string]: any;
  17. };
  18. }

适配器模式 - 图1

在数据进行组件列表展示时,将来源不同的数据经过适配器处理,进行整合,然后传递给展示组件,以达到我们的目的