UML类图的使用

作者: 死磕自己 | 来源:发表于2018-02-02 17:48 被阅读31次

    本来呢,是想着给大家分享一下我在学习设计模式的时候的一些方法,然后总结起来,方便大家用和我自己的查漏补缺。
    但是呢!由于我分享的文章中可能有很多的像下面的图片一样的UML的类图,所以呢今天我就来给大家简单的讲一讲类图是如何看的,当然我讲的不一定是非常的标准,但是基本还是可以用的,那么话不多说,我们来看看下面的这个类图;


    17-04-06.jpg

    首先我们来看一看“动物”这个矩形框,它就是代表一个类(class)。类图分为三层,第一层显示类得名称,如果是抽象类,则用斜体表示,第二层是类的特性,通常表示的就是字段和属性,第三层是类的操作,通常是方法或行为。注意前面都是有加号的,当然不一定都是加号,“+”表示的是public ,"-"表示private ,"#"表示protected.;

    17-11-59.jpg

    然后我们再看看左下角有一个飞翔,它就表示的是一个接口图,与类图的区别主要是顶端有《interface》显示,第一行呢就是接口的名称,第二行是接口方法。接口还有另一种表示法,就是唐老鸭类实现了“讲人话”的接口。;我们来看一下面这两个图

    17-17-52.jpg

    接下来我们来看类与类,类与接口之间的关系了,首先我们现看看动物、鸟、鸭子、和唐老鸭之间的关系符号,这就要回到上面的图中仔细的找找了。
    其实呢他们都是集成的关系,继承关系使用空心三角形+实现来表示的。

    17-21-06.jpg

    下面的图中,鸟类会飞翔的中,大雁是最能飞的,我让他实现了飞翔接口。实现接口用口信三角形+虚线来表示。


    17-21-24.jpg

    我们来看一下企鹅和气候这两个类,企鹅呢是很特别的的鸟,会游不会飞,更重要的是,它和气候有着很大的关联。我们就不讨论为什么了,总之,企鹅需要“知道”气候的变化,需要“了解”气候的规律。当一个类“知道”另一个类的时候,可以用关联(association)。关联关系用实线箭头表示。

    17-26-41.jpg

    我们再来回到大雁身上,大雁和雁群这两个类,大雁是群居动物,每个大雁都是属于一个雁群,一个雁群可以有很多只大雁,所以他们之间就满足聚合(Aggregation)关系,聚合表示一种若的‘拥有’关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。聚合关系用看空心的菱形+实线箭头表示。


    17-29-54.jpg

    合成(composition, 也有翻译成‘组合’的)是一种强的‘拥有’关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样。在这里鸟和其翅膀就是合成(组合)关系,因为他们是部分和整体的关系,并且翅膀和鸟的生命周期相同。合成关系用实心的菱形+实线箭头表示。另外,你可能会注意到合成关系的连心两端还有一个数字‘1’和‘2’,这被成为技术。表明这一段的类可以有几个实例。很显然,一个鸟应该有两个翅膀。如果一个类可能有无数个实例,则用‘n’来表示。。关联关系、聚合关系也是可以有技术的。

    17-39-46.jpg

    只要是动物那么他还是会新陈代谢,繁殖,而动物要想有生命力,就需要氧气、谁以及食物等。也就是说,动物依赖与氧气和谁。他们之间是依赖关系(Dependency),用虚线箭头来表示。

    17-41-30.jpg

    最后:基本上其实也就这些了,要记住,编程是一本技术,更是一门艺术,我们每次去写代码之前,我们需要构思一段时间,我们不能满足于代码能够运行正确就完事,时常考虑如何让代码变得更加简练,更加容易维护,更加容易扩展和服用,只有这样才可以真正的得到提高,而且能写出一段优雅的代码是一件很爽的事情,UML图呢其实很复杂,不过我们日常来进行简单的设计和构思,以及实现逻辑和流程的时候非常有用,当我们熟悉运用UML的时候我们已经开始面向对象了。

    相关文章

      网友评论

        本文标题:UML类图的使用

        本文链接:https://www.haomeiwen.com/subject/xcbezxtx.html