UML总述
UML(Unified Method Language)是应用面向对象的方法对软件蓝图进行描述的建模语言。
UML的构造块
事物,关系和图三部分组成UML的构造块。由关系将事物连接起来,形成各种图。同时,关系也是图中的重要组成部分,不同的图描述关系的形式不同。我将面向对象分成五个部分:对象,类,操作过程,关系和历史。
类
我们都知道类由对象抽象而来,对象是类的实例化。其实我们在很小的时候就已经接触了“类”的概念了。归类之前要先“找对象”。“找对象”最简单的方法是:找名词。将名词的共同特点抽象出来,这个抽象出来的共同特点就叫做“类”。举个例子:现在有鸡,鸭,鹅,鲸鱼,带鱼,草几个名词,我们来对它们进行分类。生物与非生物来分,它们都是生物;按动物和植物来分,鸡,鸭,鹅,鲸鱼,带鱼都是动物,草是植物。将动物有可以进行细分:水上和陆上,有羽毛和无羽毛,哺乳类还是非哺乳类。。。不好意思,又暴露了生物专业的本质了。按照不同的分类标准,我们可以将它们分成不同的类。
接口
在代码实现的过程中,对模块设置接口,同样的接口,输入不同的数据,出现的结果是不同的,同志们,还记得当年陈伟视频中的”苹果橘子“吗?getweight(),()中可以是橘子,也可以是苹果,输入的水果不同,输出的重量是不同的。
包
关于包,包是一种常规用途的组合机制。UML中的一个包直接对应于Java中的一个包。在Java中,一个包可能含有其他包、类或者同时含有这两者。进行建模时,通常使用逻辑性的包,用于对模型进行组织;使用物理性的包,用于转换成系统中的Java包。每个包的名称对这个包进行了惟一性的标识。可以将包理解为表达一种功能的完整性和层次性,而对类,用例进行的组合。包的用法非常灵活,可以将包看作系统设计中模块,可以将各模块都用的到的功能抽取出来形成单独的包。一句话,包体现了系统设计的层次性。将这些包按照层次性进行分类,形成子系统。
关系
对于关系,希望下面的一张图可以帮助大家理解:
其中,依赖是最弱的关系,最好在最后使用。
RUP
在文章开头,我们说了,UML是一种语言,但是没有说怎么使用这种语言,我们不知道它的语法是什么,而RUP(Rational Unified Process)为使用UML提供了方法。RUP对UML的指导可以沿着水平轴和垂直轴两个方向进行。在水平轴上用用例,架构和迭代等专业术语将分为初始,筹划,构建,转换四个阶段。在垂直轴上包含了核心过程和核心支持工作流程,可以先简单了解一下。
总结
UML的图都离不开四种关系,面向对象要想做的好,就要不断加强对类的理解。