3.面向对象开发方法 - wolai 笔记
面向对象= 对象+ 类+ 继承+ 通信

1.面向对象

按人类习惯的思维方法,以现实世界中客观存在的对象为中心来思考和认识问题。
采用的思想方法与原则:
  • 抽象:
  • 多态:
  • 继承:
  • 封装:
  • 接口:一些不包括具体实现方法特征的集合。

优点

  1. 与人类习惯的思维方法一致
  2. 稳定性好
  3. 可重用性好
  4. 较易开发大型软件产品
  5. 可维护性好

概念

类(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”关系,是整体与部分较强关系,部分类完全隶属于整体类。



Comment