我已经完成了设计我要开发的GUI使用的API列表的任务,以便与外部应用程序进行通信.考虑到应用程序刚刚被设计并且我有它的初始类图,我应该:
1-只需列出此应用程序类图中的字段和方法,GUI将与应用程序进行通信
要么
2-创建GUI所需的全新字段和方法列表,以便与应用程序开发人员应创建的应用程序进行通信
提前致谢!!!
我读过的API设计的最佳指南之一是" API设计的小手册 "(PDF),它对于如何为应用程序或服务创建API 有一些很好的,平台中立的指导.它给出的一些最重要的指导是:
在开始编写API本身之前创建用例;
在编写之前获得API设计的同行评审;
编写针对API的示例以测试其稳健性.
第一个提示是最好的,恕我直言; 当您的所有用例需要的只是该世界的一小部分时,它会阻止您对提供世界的API进行编码.它还会强迫您思考如何使用它,并根据这些用途而不是抽象地做出设计决策.
"只需列出此应用程序类图中的字段和方法,GUI将与应用程序进行通信"
这非常有效.
完成此操作后,尝试编写文档 - 详细示例.如果您的文档难以编写,令人困惑或蹩脚,那么您需要修复API以添加功能.
然后把它展示给其他人.
如果人们感到困惑或抱怨,那么您可能需要向API添加其他功能.
在人们实际上感到困惑或实际抱怨之前,不要做任何超过最低限度的事情.
我会指定一个接口.这会分离GUI和应用程序.
GUI将仅使用该接口(除了对返回具体对象的工厂方法的一次调用之外),API将实现该接口.像这样,GUI不知道应用程序的任何类名.这导致了一种最适合未来发展的稳定设计.
此外,该界面还可作为完整API的精彩文档.
我让API(半)独立于GUI的实现,因为以后你可能想要为同一个应用程序创建一个不同的接口,或者只是更改GUI,然后你就会遇到你创建的任何东西第一个GUI的第一遍.
另外,我强烈建议您看看Josh Bloch关于API设计的讨论.Bloch是设计Java Collections API的人.