【Practical API Design学习笔记】避免API的误用

本文探讨了API设计中常见的开发时与运行时的一致性问题,特别是如何通过提供详尽的文档、示例代码和教程来减少这类问题的发生。文章还提到了Swing组件库作为例子,展示了即使是成熟的产品也可能存在的设计缺陷。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    API要有运行时的类库、javadoc、指导教程。最重要的是,这些内容必须保持一致性。不能有的说某个功能可以实现,有的说某个功能不能实现。

    要保证开发者编写代码时输入时和运行时都正确。IDE实现了半自动化编码,来保证输入时正确。

    举个开发时和运行时不一致的例子。javax.swing.JFrame是java.awt.Component的子类。因此,所有可以使用java.awt.Component对象的地方,理论上讲都可以用javax.swing.JFrame,比如说把JFrame控件放到一个java.awt.Container控件容器中。很明显,这是行不通的,不可能把一个顶层的窗口放到一个对话框中。但是代码编译可以通过。对于有经验的人,是不会犯这种错误的,但是对于初学者来说,Swing类库在开发时和运行时的不一致性,却会打击他们使用Swing的积极性。

    这种设计和运行时不一致的例子估计俯仰皆是。这也是没有办法的事情,因为代码运行时所表现的计算能力就像一台图灵机。事实上常用的编程语言都有自己的类型,并不完全遵守图灵理论,所以编程语言无法正确表达所有运行时的内容。不可能消除所有的不同,所以一旦出现这种问题,只能说是运气不好了。但对于出现的问题,API的用户需要了解设计和运行的区别,要找到在程序运行时出现的非预期问题。如果想让用户再不了解API内幕的时候也能很好地开发代码,就必须将这种设计和运行的不一致最小化。

转载于:https://my.oschina.net/tingzi/blog/133703

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值