1.理论: 学习UML图,目前我学的有三种,用例图,类图,时序图。
用例图:
主要用来描述“用户、需求、系统功能单元”之间的关系.
主要是业务建模和需求建模。此图,作为coder,个人认为目前了解就好。什么时候做产品经理跟客户扯淡的时候,在学。
类图:
泛化(Generalization), 实现(Realization), 关联(Association), 聚合(Aggregation), 组合(Composition), 依赖(Dependency)
泛化:继承关系,表示一般与特殊。指定子类如何特化父类的所有特征和行为。
三角箭头实线,指向父类
实现:是一种类与接口的关系, 表示类是接口所有特征和行为的实现。
三角箭头虚线,指向接口
关联:是一种拥有的关系, 它使一个类知道另一个类的属性和方法。//关联可以单向,双向。单向有箭头,双向可以双箭头,可以没有箭头
普通箭头实线,指向被拥有者。
代码体现,成员变量。
聚合:是整体与部分关系,且部分可以离开整体而单独存在。
空心菱形实线,菱形指向整体
聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。
组合:是整体与部分关系,且部分不能离开整体而单独存在。
实心菱形实线,菱形指向整体
组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期
代码体现:成员变量。
依赖:是一种使用的关系, 即一个类的实现需要另一个类的协助, 所以要尽量不使用双向的互相依赖.
普通箭头虚线,指向被使用者
各种关系的强弱顺序:
泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖
下面这张UML图,比较形象地展示了各种类图关系:
说明:最上一层是类名,中间一层是属性名称,最下一层是方法名称。
+代表public属性,-代表private属性,static,final,暂时往了,先往下写。
时序图:
讲流程执行的先后发生顺序。对象之间交互,是按时间顺序排列的。
顺序图中显示的是参与交互的对象及其对象之间消息交互的顺序。
建模元素主要有:角色(Actor)、对象(Object)、生命线(Lifeline)、控制焦点(Focus of control)、消息(Message)
角色:事件的触发者,可以使人,或者是系统
对象:
对象包括三种命名方式:
第一种方式包括对象名和类名;
第二中方式只显示类名不显示对象名,即表示他是一个匿名对象;
第三种方式只显示对象名不显示类明。
生命线:
生命线在顺序图中表示为从对象图标向下延伸的一条虚线,表示对象存在的时间。
控制焦点:
控制焦点是顺序图中表示时间段的符号,在这个时间段内对象将执行相应的操作。用小矩形表示。
消息:
消息一般分为同步消息(Synchronous Message),异步消息(Asynchronous Message)和返回消息(Return Message).
找了张罗升阳分析Android启动流程的时序图。