C++软件设计思想、方法与模式
软件设计思想与原则
从面向对象谈起:
为什么要面向对象设计?
面向对象设计最大的优势在于:抵御变化
底层思维:向下,如何把握机器底层从微观理解对象构造。
抽象思维:向上,如何将我们的周围世界抽象为程序代码。
软件设计通常具有固有的复杂性,了解软件设计复杂性的诱因是处理复杂性的关键。
那如何解决复杂性呢?
•分解
人们面对复杂性有一个常见的做法:即分而治之,将大问题分解为多个小问题,将复杂问题分解为多个简单问题。
•抽象
更高层次来讲,人们处理复杂性有一个通用的技术,即抽象。由于不能掌握全部的复杂对象,我们选择忽视它的非本质细节,而去处理泛化和理想化了的对象模型。
而面向对象设计的精髓就是—“抽象”
1.向上:深刻把握面向对象机制所带来的抽象意义,理解如何使用这些机制来表达现实世界,掌握什么是“好的面向对象设计”
2.对象通过“抽象”来管理复杂性
•数据抽象
•单一责任
•模块化
•分治管理
面向对象设计的“SOLID”五大原则:
•SRP (