设计模式第一天
软件设计复杂的根本原因:
- 客户需求的变化
- 技术平台的变化
- 开发团队的变化
- 市场环境的变化
如何解决复杂性:
- 分解(面向过程->函数?)
- 人们面对复杂性有一个常见的作法:即分而治之,将大问题分解为多个小问题,将复杂问题分解为多个简单问题;
- 抽象
- 更高层次来讲,人们处理复杂性有个通用的技术,即抽象。由于不能掌握全部的复杂对象,我们选择忽视它的非本质细节,而去处理泛化和理想化了的对象模型。
例子:
就画图形这个例子来说,在面向过程中,通过构造要画的图形的数据结构,在需要画某种图形时,调用画该图形的函数解决,而且还需要开辟不同图形的向量内存
存储图形的个数,便于删除;每当来一个新类型图形时,都需要构造该图形的类型,编写画该类型的函数,开辟存放该类型的向量空间以及删除该类图形的函数。扩展性太弱。
而面向对象通过继承和多态特性能够用基类指针指向不同类型的子类实现函数的复用,拓展性强。
记录学习点滴,如有违规请告知。