优秀设计的特征
# 特征
## 代码复用
## 扩展性
代码复用
无论是开发何种软件产品,成本和时间都最重要的两个维度。
- 较短的开发时间意味着可比竞争对手更早进入市场;
- 较低的开发成本意味着能够留出更多营销资金,因此能更广泛地覆盖潜在客户。
代码复用是减少开发成本时最常用的方式之一。
扩展性
变化是程序员生命中唯一不变的事情。
- 比如你在Windows平台下发布了一款游戏火了,玩家要求发布Mac版
- 比如设计了一款漂亮数字验证码插件,但是用户要求滑块验证码
- 比如你刚刚完成一个功能,此时需求变了(太常见了)
因此在设计程序架构时,所有有经验的开发者会尽量选择支持未来任何可能变更的方式。
##purple## 在支持可维护性(Maintainability)的同时,提高系统的可复用性(Reusability)是一个至关重要的问题,如何同时提高一个软件系统的可维护性和可复用性是面向对象设计需要解决的核心问题之一。