我被赋予了设计我必须开发的GUI使用的API列表的任务,以便与外部应用程序通信。考虑到应用程序刚刚被设计并且我有它的初始类图,我应该:
1-只需列出此应用程序类图中的字段和方法,GUI将与应用程序进行通信
或
2-创建GUI所需的全新字段和方法列表,以便与应用程序开发人员应创建的应用程序进行通信
提前致谢!!!
答案 0 :(得分:18)
我读过的API设计的最佳指南之一是“The Little Manual of API Design”(PDF),它有一些伟大的,平台中立的指导如何创建API用于申请或服务。它提供的一些最重要的指导是:
第一个提示是最好的,恕我直言;当您的所有用例需要的只是该世界的一小部分时,它会阻止您对提供世界的API进行编码。它还会强迫您思考如何使用它,并根据这些用途而不是抽象的方式做出设计决策。
答案 1 :(得分:13)
“只需列出此应用程序类图中的字段和方法,GUI将与应用程序进行通信”
这非常有效。
执行此操作后,尝试编写文档 - 详细示例。如果您的文档难以编写,令人困惑或蹩脚,那么您需要修复API以添加功能。
然后将它展示给其他人。
如果人们感到困惑或抱怨,那么您可能需要在API中添加其他功能。
在人们实际上感到困惑或实际抱怨之前,不要做任何超过最低限度的事情。
答案 2 :(得分:7)
我会指定一个界面。这会分离GUI和应用程序。
GUI将仅使用接口(除了一次调用返回具体对象的工厂方法),API将实现该接口。像这样,GUI不知道应用程序的任何类名。这导致了一种最适合未来发展的稳定设计。
此外,该界面可作为完整API的精彩文档。
答案 3 :(得分:6)
我将API(半)独立于GUI的实现,因为稍后您可能想要为同一个应用程序创建不同的接口,或者只是更改GUI,然后你就会陷入困境您为第一个GUI的第一次传递创建了。
此外,我强烈建议您查看Josh Bloch's talk about API design。 Bloch是设计Java Collections API的人。