软件开发中的设计与测试策略
1. 设计方法的选择
在软件开发中,对于对象的建模,有继承和组合两种主要方法。以自行车示例的需求来看,通过组合来建模自行车对象是最具成本效益的方式。“is - a”(是一个)和“has - a”(有一个)的区别是决定使用继承还是组合的核心。
设计方法 | 适用情况 |
---|---|
组合 | 对象的部件较多时,更适合用组合来建模。组合能将小部件组合成更复杂的对象,这些简单对象易于理解、复用和测试,但整体应用的操作可能不如单个部件容易理解。 |
继承 | 当深入研究单个部件,发现某个特定部件有一些专门的变体时,继承是一个合理的选择。 |
在面对每个问题时,都要评估不同设计技术的成本和收益,凭借自己的判断和经验做出最佳选择。组合、经典继承和通过模块共享行为都是组织代码的竞争技术,它们各有不同的成本和收益,适用于解决略有不同的问题。要成为更好的设计师,需要练习使用这些技术,学会正确使用它们需要经验和判断力,而从自己的错误中学习是获得经验的最佳途径之一。
2. 编写可更改代码的技能
编写可更改的代码依赖于三种不同的技能:
- 理解面向对象设计 :设计不佳的代码自然难以更改,从实际角度看,可更改性是唯一重要的设计指标,易于更改的代码就是设计良好的代码。
-