UML 语言简介
前言
在学习设计模式之前,先了解下UML(unified modeling language), 其可以于方便表示开发和构建你的项目.
对象之间关系
依赖
关联
关联和依赖的具体区别在与依赖方是否可以访问被依赖方的所有信息
如果可以则是关联,如果不可以则只是单纯的依赖
聚合
组合
UML对象关系
- 依赖:对类 B 进行修改会影响到类 A 。
- 关联:对象 A 知道对象 B。类 A 依赖于类 B。
- 聚合:对象 A 知道对象 B 且由 B 构成。类 A 依赖于类 B。
- 组合:对象 A 知道对象 B、由 B 构成而且管理着 B 的生命周期。类 A 依赖于类 B。
- 实现:类 A 定义的方法由接口 B 声明。对象 A 可被视为对象B。类 A 依赖于类 B。
- 继承: 类 A 继承类 B 的接口和实现, 但是可以对其进行扩展。对象 A 可被视为对象 B。类 A 依赖于类 B。
面向对象用例介绍
类和对象
继承
继承层次中如果想专注展示其层次关系可以进行简化显示
接口
继承和接口
这里值得一提的是继承需要实现父类中的所有方法,如果一个子类可以继承多个父类的话可能会导致平行继承体系
的产生,如果出现多个的情况可能会让类层次结构变得十分复杂,所以一般语言设计时都会强制只能继承一个父类.
改进该复杂的继承关系也相对简单,将不同维度功能抽象到各自的类层次中之后通过组合(接口)的形式与主类交互