深入理解面向对象:
向下:深入理解三大面向对象机制
封装,隐藏内部实现
继承,复用现有代码
多态,改写对象行为
向上:深刻把握面向对象机制所带来的抽象意义,理解如何将这些机制来表达现实世界,掌握什么是“好的面向对象设计”
软件设计复杂的根本原因:
客户需求的变化
技术平台的变化
开发团队的变化
市场环境的变化
如何解决复杂性:
分解:
人们面对复杂性有一个常见的做法:即分而治之,将大问题分解为多个小问题,将复杂问题分解为多个简单问题。
抽象:
更高层次来讲,人们处理复杂性有一个通用的技术,即抽象。由于不能掌握全部的复杂对象,我们选择忽视它的非本质细节,而去处理泛化和理想化了的对象模型。
软件设计的目标:
什么是好的软件设计?软件设计的金科玉律:
复用!