4.1 重新学习UML

当前现状
有很多人工作了很长时间,却对UML还不了解。还有很多人认为UML只是面试需要考察的技能,工作中完全用不到。
多态、继承、封装、UML、SOLID设计原则是很多面试所考察的能力点,他们背后所代表的不是这些概念有没有了解,实际上掌握这些技能才是做好建模的必要条件,作为一个优秀的架构师来说,技术框架、开发语言只能算是技术面的维度,真正优秀的架构师需要有非常扎实的模型设计能力,从软件设计角度来说,掌握多态、继承、封装、UML、SOLID设计原则的价值是远大于掌握更多技术框架的价值的。
学习UML
UML(Unified Modeling Language)是一种建模标准语言,主要用于建模和建模交流,UML体现了类与类之间的关系。
类与类之间的关系总分为六种关系:
依赖(Dependency):
依赖是一种使用的关系,即一个类的实现需要另一个类的协助,所以说,依赖是一种比较弱的关系,表现在类图中的是带箭头的虚线。

关联(Association):
关联是类与类之间最常用的一种关系,通常情况下如果两个类之间有连线,那么这两个类之间的关系一般就是关联。关联可以是单向的,也可以是双向的,单向的关联使用带箭头的实线表示,双向的关联使用不带箭头的实线表示。

组合(Composition):
组合是一种强的拥有的关系,体现了严格的部分和整体的关系,部分和整体的生命周期是一样的。在UML图中,组合通常用一个带实心菱形的直线来表示。

聚合(Aggregation):
聚合是一种弱的'拥有'关系,体现的是A对象可以包含B对象,但B不是A对象的一部分。聚合关系是用空心的菱形线表示的。

泛化(Generalization):
泛化关系是一种继承关系,表示一般与特殊的关系,或者说是父子关系。在UML图中,泛化关系用带箭头的实线表示,箭头从子类指向父类。

实现(Realization):
实现关系是一种类与接口的关系,表示类是接口所有特性的具体实现。在UML中,实现关系通常通过一条带箭头的虚线表示,箭头从实现类指向接口。

六种关系中,从弱到强依次是:
依赖关系 < 关联关系 < 聚合关系 < 组合关系 < 实现关系 = 泛化关系
UML的作用
UML是表现类关系的一种约定标准方式,是建模的统一标准语言,采用UML是为了方便大家可以更好的理解与交流模型。
UML便于团队交流协作
在实际工作中,我们可能直接用UML图来交流模型,同时也会直接谈类与类的关系,通过大家对于统一的建模标准的理解,可以更好的理解模型设计。
UML可视化便于模型优化
如果没有UML可视化呈现模型的样子,设计者就很难对业务模型的抽象去思考设计,也很难对现有的业务模型做优化设计,因此通过UML可视化才可以让我们更好的做模型设计的工作。
总结
UML设计是模型设计的规则标准,我们不能浅显的理解UML只是学校里考试需要掌握的知识点,UML也不是只是在面试时才用到的技术储备,UML应该是作为模型设计者所必需要掌握的技能。其实所谓的建模设计,其实就是在画UML图。