软件构造 课堂笔记3
程序员文章站
2022-03-10 14:15:13
...
本文内容主要基于老师上课的内容,以及上课的PPT
软件构造的主要活动是编码与测试
软件构造的首要技术使命是管理复杂度
类与对象
类:静态的
对象:运行时存在的动态的
软件的启发式方法
- 软件设计是非确定性的
- 启发式方法就是不断“试错”的过程
- 铭记软件的首要技术使命
启发式设计1:找出现实中的对象
上图是基于时间的计费系统
启发式设计2:形成一致的抽象
启发式设计3:封装实现细节
启发式设计4:信息隐藏
例,一个程序,程序中的所有对象通过名为id的成员变量来保存唯一的ID,如何管理ID?
一种比较好的实践方式是,将ID的创建全部放在newID()函数中,这样只需要调用newID()函数,而不需要关心具体的ID分配原则。
刚刚的做法是隐藏创建新ID的方法
在C++中还有隐藏ID类型的方法
typedef int IDType;
IDType id;
如果需要修改id的类型,只需要修改typedef语句
启发式设计5:找出容易变化的区域
启发式设计6:保持松散耦合Coupling
还有一些别的启发式设计方法,此处先不提。
上一篇: 03、构造器详解
下一篇: 软件构造笔记策略设计模式
推荐阅读
-
[HITSC]哈工大软件构造Lab3+Lab4实验总结
-
软件构造3.2设计规约笔记
-
软件构造 3-1 Data Type and Type Checking
-
【课堂笔记精选】为了能够用“Unity”软件做游戏,我要从最基础的开始复习JavaScript
-
从零开始做自动驾驶定位-学习笔记-3-软件框架
-
CSS高效开发实战:CSS 3、LESS、SASS、Bootstrap、Foundation 读书笔记(4)构造尺寸更灵活的背景_html/css_WEB-ITnose
-
【课堂笔记精选】为了能够用“Unity”软件做游戏,我要从最基础的开始复习JavaScript
-
CSS高效开发实战:CSS 3、LESS、SASS、Bootstrap、Foundation 读书笔记(4)构造尺寸更灵活的背景_html/css_WEB-ITnose
-
软件构造学习笔记1--github提交问题解决与阶段学习感想
-
【软件构造】Lab3感想心得