探索公共接口:从理论到实践的设计之旅
在软件开发的世界里,找到并定义公共接口是一项至关重要的技能。它不仅影响着代码的灵活性和可维护性,还决定了软件在面对变化时的适应能力。接下来,我们将通过一系列实际的例子,深入探讨如何有效地发现和设计公共接口。
1. 公共接口设计的挑战与目标
公共接口的设计并非易事,因为没有一成不变的规则可循。设计的目标是在满足当前需求的同时,尽可能保留未来的灵活性。一个好的公共接口能够降低意外变更的成本,而糟糕的接口则会增加成本。
为了更好地说明这一点,我们引入一个自行车旅游公司(FastFeet, Inc.)的例子。该公司提供公路和山地自行车旅行服务,目前采用纸质系统运营,尚未实现自动化。公司的每条旅行路线都有特定的有氧难度评级,山地自行车旅行还有额外的技术难度评级。客户有自己的有氧健身水平和山地自行车技术技能水平,以此来判断某条旅行路线是否适合自己。客户可以选择租用自行车或自带,公司有少量自行车可供出租,也与当地自行车店共享一批租赁自行车。
现在有一个简单的需求,即客户希望看到在特定日期、具有适当难度且有租赁自行车可用的旅行列表。这就是我们后续设计的用例。
2. 构建设计意图
在开始一个全新的应用程序时,编写第一行代码是一件令人望而生畏的事情。与在现有代码库中添加代码不同,这里需要从头开始做出决定,这些决定将影响应用程序的整个模式。
很多新手设计师在想象第一个测试时会遇到困难,因为编写测试需要对要测试的内容有一个清晰的想法。而测试优先的专家之所以能够轻松开始编写测试,是因为他们有丰富的设计经验,已经在脑海中构建了应用程序中对象和交互的可能性地图。
从自行