面向对象= 对象+ 类+ 继承+ 通信
1.面向对象
按人类习惯的思维方法,以现实世界中客观存在的对象为中心来思考和认识问题。
采用的思想方法与原则:
- 抽象:
- 多态:
- 继承:
- 封装:
- 接口:一些不包括具体实现方法特征的集合。
优点
- 与人类习惯的思维方法一致
- 稳定性好
- 可重用性好
- 较易开发大型软件产品
- 可维护性好
概念
类(Class)是具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包属性和方法两个主要部分。
对象(Object)是系统中描述客观事物的一个实体,它是构成系统的一个基本单位,由一组属性和对这组属性进行播作的一组服务组成,是类的一个实例
- 属性:用来描述对象静态特征的一个数据项;
- 服务:用来描述对象动态特征(行为)的一个操作序列
封装(Encapsulation)是把对象的属性和服务结合成一个独立的系统单位,并尽可能隐藏对象的内部细节。
继承性:使得相对象可以共享程序代码和数据结构,大大减少程序中的冗余信息,可以把已有的一般性的类具体化来提高软件的可重用性。
多态性(Polymorphism)是指在父类中定义的属性或服务被子类继承后,可以具有不同的数据类型或表现出不同的行为
重载:
- 函数重载:在同一作用域,若干个参数特征不同的函数可以使用相同的函数名
- 运算符重载:同一个运算符可以施加于不同类型的操作数上面
2.面向对象建模
模型:是一组图示符号和组织这些符号的规则,利用它们来定义和描述问题域中的术语和概念
- 对象模型(object model) :定义实体,描述系统数据,定义“对谁做” 。“类图”
- 动态模型(dynamic model) :描述系统控制结构, 规定“何时做” 。“状态图”和“事件追踪图”
- 功能模型(functional model) :描述系统功能, 指明系统应“做什么” 。数据流图和用例图
三个模型从三个侧面描述了索要开发的系统,它们相互补充、互相配合。使我们对系统的认识更全面
3.UML中活动图、状态图、顺序图
活动图:强调的是从活动到活动的控制制流。是一种表述过程基理、业务过程以及工作流的技术。活动图它可对业务过程、工作流建模,也可以对用例实现甚至是程序实现来建模
状态图:常用来描述业务或软件系统中的对象在外部事件的作用下。对象的状态从一种状态状态机图到另一的控制流。
顺序图:描述的是对象之间的消息发送关系,而不是类之间的关系
4.UML中的事物
结构事物:UML中的名词,它是模型的静态部分,描述概念或物理元素。
行为事物:UML中动词,它是模型中的动态部分,是一种跨越时间、空间的行为。
分组事物:UML中的容器,用来组织模型,使模型更加的结构化。
注释事务:UML中的解释部分,和代码中的注释语句一样,是用来描述模型的
5.用例图
用例图是外部参与者所能观察到的系统功能的模型图。用例图描述外部执行者(actor)与系统的交互,表达系统功能,即系统提供服务。
由一组用例、参与者及它们之间的关系组成。
主要用于对系统、子系统或类的功能行为进行建模。
参与者是与系统交互的外部实体,可以是人,也可以是其它系统。
用例是从用户的角度描述系统的行为(功能)它将系统的功能描述成一系列事件,这些事件最终对参与者产生可观察结果
关系
- 关联:
- 包含:一个基本UseCase行为包含另一个UseCase行为。
- 扩展:允许一个用例扩展另一用例提供的功能。
- 泛化:一般与特殊关系
6.类图
描述类与类间的静态关系。
关系有六种:
- 关联:
- 泛化:是指类间的“一般-特殊”关系。
- 依赖:一模型元素变化必影响另一模型元素。
- 实现:是指一个类描述了另一个类保证实现的合约。
- 聚合:类与类间关系是"has-a",整体与部分关系,较弱情况。菱形端代表整体事物类;代表部分事物类可属于整体事物类
- 组合:组合是“contains-a”关系,是整体与部分较强关系,部分类完全隶属于整体类。