软件框架-无绪开发5

设计API时要区分其目标用户群

提供给客户端代码的API与为开发商提供的API是不同的。

1.API升级

(1)抛出异常模式,不太好,用户升级一次每个api需要写好几行代码
(2) 预留参数
设计时最好哪些不准备别人继承的类都用 final 修饰

2.合理分解API

一类供他人调用来完成某些功能(final类);一类供他人来扩展API的(预留参数)==>可读性和代码升级需要
面向对象的语言都有内聚性的倾向,查找资料时,可以方便看出。
(1)把有关联的方法放置在同一个类中
(2)对于一些无关的方法,决不能因为一时无法找到更合适的位置来放置,就随便放入与它们无关的地方
(3)把有关联的类放置在同一个包中
(4)把一些只有特殊场景下才用的到的类转移到其他地方
牢记: 使用API的人可能是多个不同的用户群
总结: 最好是把实现类分开放置在不同的包里,让用户很难找到这些类,也避免API用户有机会一下子拿到这么多的类
api和spi
如,具体实现放到它自己的模块里,然后通过独立的API进行版本控制
API: 用来供他人调用来完成某些功能的内容,API包中的类应该是自包含的,不会引入人很SPI包中的内容
SPI: 用来供他人来具体实现的内容

API分类

核心类型的API: 用户往往只关心类库提供了哪些功能,这个类库执行某些关键API
支持类型的API: 大量实用方法,让用户更容易使用,用户不一定用,只是为了让用户感到安慰,它们只是助手类,非必须内容
核心类型的SPI: 提供另一用户群使用接口,拓展类库功能。如果不允许外部提供拓展功能,则不需要提供这些内容
支持类型的SPI: 助手
 
这种方法很容易对API演进。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yongwuzhijing800

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值