首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对定义客户端接口感到困惑

对定义客户端接口感到困惑
EN

Stack Overflow用户
提问于 2016-02-28 21:15:45
回答 1查看 30关注 0票数 0

我正在定义一些系统,并混淆了API应该如何设计并提供给外部客户端。

我将首先解释一下内部系统的实现。有些车辆由系统管理。车辆定义为基类车辆和派生类,如陆地车辆或空中车辆。在陆路车辆中存在着一些不需要的属性。此外,基类中也可能有一些属性,如"VehicleType“,其值由派生类控制,这意味着陆路车辆可以拥有汽车,而Ari车辆可以具有”波音“等类型。

我需要为客户端提供API来创建/检索车辆。应该为客户提供接口吗?

  1. 所有属性都是以非规范化的方式进行的,这样客户就不需要关心那些资产属于Land或Air派生类了吗?在创建过程中,它可能很好,但是客户端至少必须在检索时检查它。
  2. 我是否应该允许客户端直接创建叶子类(如LandVehicle )并将其传递给我的服务?如果是这样的话,那么客户端将需要查询服务,以找到哪个assetType属于哪个派生类。

我相信第一种方法,因为客户不应该费心于车辆的系统实现,而让系统决定应该创建哪种类型。

请提供任何建议。

EN

回答 1

Stack Overflow用户

发布于 2016-02-29 19:02:38

  1. 准备一个包含诸如陆地、空气等车辆类型的的枚举。
    1. 准备一个具有各种车辆所有共同属性的接口。
    2. 准备一个扩展接口的类,并确保您接受枚举来定义使用者请求的车辆类型。
    3. 现在,使用传递的车辆类型,您可以创建实例并返回接口。
    4. 客户端并使用枚举类型并相应地对其进行类型化,并在需要时调用类的特定方法,或者可以在接口中使用直接方法而不进行类型转换。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35688363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档