Python面向对象编程(第4版)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.7.7 结论

这个案例学习中有几个关键概念:

1.软件应用程序可能会相当复杂。可以用5个视图来描述用户、数据、处理过程、要构建的组件和最终的物理实现。

2.我们会犯错。概述部分有一些遗漏。重要的是向前推动,哪怕解决方案并不完善。Python的一大优势是可以快速地开发软件,这意味着就算有错误的决定也可以快速地修正。

3.对扩展保持开放的心态。我们在实现了前面的设计后,会发现手工设置参数k是一个烦琐的工作。重要的下一步是,使用网络搜索算法自动优化参数k。但一开始我们并没有考虑这种自动化算法,而是先开发出一个可用版本,然后在这个版本上再扩展有用的功能。

4.尽量给每个类都赋予清晰的责任。到目前为止,我们做得还可以。有些责任有点儿模糊,或者被忽视了。当我们把初始分析转变成实现细节的时候,再来修正这些问题。

在后面的章节中,我们将更深入地探讨这些不同的主题。因为我们的目的是呈现真实的工作,所以这将涉及返工。随着读者接触到越来越多的可用的Python面向对象编程技术,一些设计决策可能会被修改。此外,解决方案的某些部分将随着我们对设计选择的理解和问题本身的发展而演变。基于经验教训的返工是敏捷开发方法的产物。