C++软件设计思想、方法与模式
软件设计思想与原则
从面向对象谈起:
为什么要面向对象设计/p>
面向对象设计最大的优势在于:抵御变化
底层思维:向下,如何把握机器底层从微观理解对象构造。
抽象思维:向上,如何将我们的周围世界抽象为程序代码。
软件设计通常具有固有的复杂性,了解软件设计复杂性的诱因是处理复杂性的关键。
而面向对象设计的精髓就是—“抽象”
1.向上:深刻把握面向对象机制所带来的抽象意义,理解如何使用这些机制来表达现实世界,掌握什么是“好的面向对象设计”
2.对象通过“抽象”来管理复杂性
据抽象
一责任
块化
治管理
面向对象设计的“SOLID”五大原则:
RP ( Single Responsibility Principle),单一职责原则
CP(Open Close Principle),开放封闭原则
SP(Liskov Substitution Principle),里氏替换原则
SP(Interface Segregation Principle),接口隔离原则
IP(Dependence Inversion Principle), 依赖倒置原则
深入理解面向对象三大机制:
1.封装,封装数据(状态)与函数(行为)
象的内存布局
2.继承,复用父类代码实现
类与父类的对象模型
有继承、受保护继承、公有继承
3.多态,运行时选择对象行为
表指针完成运行时动态绑定
软件设计方法与技巧
将设计原则提升为设计经验:
计原则 Design Principles
Design Principles 描述与特定编程语言无关的,通用性的,适用于各种粒度的设计原则。
计习语 Design Idioms
Design Idioms 描述与特定编程语言相关的特定规范、技巧、惯用法。参考《C++ Core Guidelines》
计模式 Design Patterns
Design Patterns主要描述的是“类与相互通信的对象之间的组织关系,包括它们的角色、职责、协作方式等方面。
重构
1.重构是对软件内部结构的改善,是在不改变软件的可为的情况下,使其更易理解,修改成本更低。
2.重构过程包括去除重复、简化复杂逻辑和澄清模糊的代码。
保证重构的安全性
序渐进地进构
持续进构
通过重构进行迭代式设计,逐步得到好的设计,是设计常态。
架构模式 Architectural Patterns:
构模式描述系统中与基本结构组织关系密切的高层模式。
构模式通常包括子系统划分,职责,以及如何组织它们之间关系的规则。
设计模式与实践
GOF-23 模式分类
1.从目的来看:
建型(Creational)模式:将对象的部分创建工作延迟到子类或者其他对象,从而应对需求变化为对象创建时具体类型实现引来的冲击。
构型(Structural)模式:通过类继承或者对象组合获得更灵活的结构,从而应对需求变化为对象的结构带来的冲击。
为型(Behavioral)模式:通过类继承或者对象组合来划分类与对象间的职责,从而应对需求变化为多个交互的对象带来的冲击。
2.从范围来看:
模式处理类与子类的静态关系。
象模式处理对象间的动态关系。

文章知识点与官方知识档案匹配,可进一步学习相关知识C技能树进阶任务C语言问答113445 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!