1.软件设计
好的软件设计就是把一个问题清楚地分解为模块,然后再整体地排列这些模块。
高内聚:是一个模块功能强度的度量;
低耦合:涉及两个模块,是它们之间相互依靠或相互作用的程度的度量。
#功能独立性
定义:指的是一个内聚的模块执行单个任务或函数,若模块满足该特性,那它跟其他模块的互动是最小的。
用途:错误隔离;能增加被重用的次数;增加可理解性。
#扇入:直接调用一个给定模块的模块数量。高扇入表示代码的重用率高。
扇出:一个给定模块直接控制的模块数量。高扇出表示该模块缺乏内聚。
2.UML建模语言
5类图(用例图,静态图,行为图,交互图,实现图),9种图。(可见:http://m.blog.csdn.net/article/details?id=8552956)
(1)用例图:站在用户的角度,而不是开发者角度。
用例图中存在的关系 (可见:http://m.blog.csdn.net/article/details?id=8567448)
(2)类之间存在的4种关系(可见:http://m.blog.csdn.net/article/details?id=8568303)
#BD-基本设计 ,DD-详细设计,FD-结构设计
3.面向功能的软件设计与面向对象的软件设计
#面向功能的软件设计
结构化分析(SA):将问题描述中的那套高级功能自上而下地分解,并吧它们图形化地表示出来。
结构化设计(SD):在SA中识别出来的所有功能都会被映射到一个模块结构上。和面向对象。
基于上述特性可认为这种设计是面向功能的软件设计。其特点为:一个系统被认为能执行一系列函数;系统状态是集中的,数据可在不同的函数之间共享。
#面向对象的软件设计
特点:系统被认为是一个对象的集合,对象间通过传播信息来交流;系统状态在对象中是分散的,每个对象可以控制自己的状态。
回顾一些类的知识
#函数的重载
定义:在声明对象是,编译器会根据调用者传递的参数自动匹配函数。
条件:函数的参数类型不同,参数个数不同(只有返回值不同的两个函数不算)。
#函数的覆盖
条件:发生在基类和子类之间;基类必须为虚函数(用virtual进行声明);函数名称与参数列表完全相同。
#函数的多态性
1)静态绑定:同样的消息被不同的对象获取就会产生不同的行动。当一个操作拥有多个方法是就会发送静态绑定,即涉及函数重载。
2)动态绑定:涉及函数的覆盖,把处理消息确切的方式留给接收消息的对象。
原文:http://www.cnblogs.com/QFighting/p/5410648.html