1、概念:
类是对某个对象的定义。它包含有关对象动作方式的信息,包括它的名称、方法、属性和事件。
2、介绍几种类。
- 分析类。
用于获取系统中主要的“职责簇”。它们代表系统的原型类。是系统必须的主要抽象概念的“第一个关口”。
- 边界类。
是一种用于对系统外部环境与其内部运作之间的交互进行建模的类。
边界类常用场景:
A.参与者与用例之间应当建立边界类。
B.用例与用例之间如果有交互,应当为其建立边界类。
C.如果用例与系统边界之外的非人对象有交互,应当建立边界类。
D.在相关关联的业务对象有明显的独立性要求,应当为它们建立边界类。
- 控制类
用于对一个或几个用例所特有的控制行为进行建模。
- 实体类
用于对必须存储信息和相关行为建模类。
- 设计类
系统试试中一个或多个对象的抽象;设计类所对应的对象取决于试试语言。
3、分析类三高。
- 高于设计实现。
在为需求考虑系统实现的时候,可以不理会复杂的设计要求,而专心的为从需求到实现搭建一座桥梁。
使用分析类的时候不需要顾及实现问题,专心解决需求问题。
- 高于语言实现。
在为需求考虑系统实现的时候,可以不理会采用哪一种语言来编写代码,而能专注在需求实现上。
- 高于实现方式。
在为需求考虑系统实现的时候,可以不考虑采用哪一种具体的实现方式。
4、关系
- 关联关系
它描述不同类的对象之间的结构关系,它在一段时间内将多个类的实例连接在一起。简单的说就是描述了某个对象在一段时间内一直“知道”另一个对象的存在。例如A对象保存了B对象的ID,但A对象对B对象没有操作,这时A仅仅是知道B对象。
- 依赖关系
描述一个对象的修改会导致另一个对象的修改这样的关系。与关联不同的是,依赖关系除了“知道”其他对象的存在,还会“使用”其他对象的属性或方法。例如:如果A对象使用了B对象的属性或方法,则B的修改会导致A的修改,这时候A依赖于B。
- 扩展关系(Extend)
扩展表示的是“可选”,而不是“必须”这意味着即使没有扩展用例,基本用例也是完整的;如果没有基本用例,扩展用例是不能单独存在的;如果有多个扩展用例,同一时间用例实例也只会使用其中的一个。
- 包含关系(Include)
包含用例表示的是“必须”而不是“可选”,这意味着如果没有包含用例,基本用例是不完整的,同时如果没有基本用例,包含用例是不能单独存在的。
- 实现关系(Realize)
一个Class类实现接口的功能,实现是类与接口之间最常见的关系。如图
- 精化关系(Refine)
标识由基本对象可分解为更明确、更精细的自对象,这些子对象并没有增加、减少、改变基本对象的行为和属性,仅仅是更加细致和明确化了。如图。
- 泛化关系
简单的说就是继承关系。
- 聚合关系
鸟与鸟群的关系就是聚合关系,整体和部分不是强依赖的,即使整体不存在了,部分仍然存在。
- 组合关系
鸟与翅膀的关系,是一种强依赖的特殊聚合关系。如果整体不存在了,则部分也将消亡。
PS:以上关系如果只是理论上的如果想更好的理解这些关系请参照一下博客