设计模式之UML类图该怎么画

关于可维护、可复用、可扩展、灵活性好的理解:

生活中:印刷术和活字印刷,当需要对某些内容修改时,印刷术只要有一丁点变化,就需要重头再来;而活字印刷只需要进行部分修改即可。

可维护:只更改要更改的内容;

可复用:之前的内容并非用完就无用,后面仍可使用;

可扩展:若要新增内容,只需在原来内容的基础上增加新内容即可;

灵活性:内容可以稍作修改既可以满足要求。

封装、继承、多态把程序的耦合度降低,使用设计模式使得程序更加灵活,容易修改并易于复用。

UML类图

在学习设计模式时,UML类图是必不可少的工具,通过UML类图可以查看所设计的程序是否足够优秀。判断所设计的代码是否具有可维护性、可扩展性、可复用性、灵活性等。设计模式之UML类图该怎么画
(图片来自大话数据结构)

  • 类图分为三层,第一层显示类的名称,如果是抽象类,则用斜体显示;第二层是类的特性,通常是字段和属性;第三层是类的操作,通常是方法或行为;注意前面的符号,“+”:public,“-”:private,“#”:protected

  • 接口

    与类图的区别主要是顶端有<<interface>>显示;第一行是接口名称,第二行是接口方法。接口还有棒棒糖表示法,如上图所示,唐老鸭实现讲人话这个接口,在圆圈旁边是接口的名称。

  • 继承(类与类)

    空心三角形+实线;空心三角形在被继承端,即父类

  • 实现(类与接口)

    空心三角形+虚线;空心三角形在被实现端

  • 关联

    当一个类需要知道另一个类时,如企鹅需要知道气候变化,需要了解气候规律。用实线箭头表示,箭头指向被了解方

  • 聚合

    比如:每只大雁都属于一个雁群,而一个雁群可以有多只大雁;它们之间就满足聚合关系。聚合表示一种弱的‘拥有’关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。聚合用空心菱形+实现箭头表示,菱形在B对象上,箭头指向A对象

  • 合成/组合

    比如:鸟和翅膀就是组合关系,是一种强的‘拥有’关系,体现严格的部分和整体的关系,两者生命周期一样。合成关系用实心菱形+实线箭头来表示,实心菱形在拥有端,箭头指向被拥有端,在合成关系的连线两端还有数字,称为基数,表示这一类可以有几个实例,

  • 依赖

    如上图的动物需要依赖氧气、水等用虚线箭头表示,箭头指向被依赖端