如何解决复杂性问题
- 分解:即分而治之,将大问题分解为多个小问题,将复杂问题分解为多个简单问题。
- 抽象:由于不能拿掌握全部的复杂对象,我们选择忽视它的非本质细节,而去处理泛化和理想化了的对象。
变化:
客户需求的变化
开发团队的变化
技术平台的变化
市场环境的变化
面向对象设计,为什么?
变化是复杂的天敌!面向对象设计最大的优势在于“抵御变化”
面向对象
1.理解隔离变化。从宏观层面来看,面向对象的构建方式更适应软件的变化,能将变化所带来的影响减为最小。
2.各司其职。从微观面来看,面向对象的方式更强调各类的责任
3.对象是什么?
- 从语言实现层面来看,对象封装了代码和数据。
- 从规格层面来讲,对象hi一系列可被使用的公共接口。
- 从概念层面讲,对象是某种有责任的抽象