UML简单介绍(十六)——类图的两个基本案例分析

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ljtyzhr/article/details/46474973

1、菜单案例

        菜单是一个非常常见的对象,我们使用的智能手机上就会有很多菜单,比如我们使用的safari浏览器,一级菜单就有文件、编辑,显示,历史纪录等等。而一级菜单下面,往往还有二级菜单、三级菜单等。比如文件菜单下面,就有新建,保存等菜单选项。而菜单一般用来做显示,点击的时候,才会执行这个菜单显示的命令。

        这里,我们给出一个菜单的简单的类图对象,比较简单抽象,如下:



2、菜单案例分析

        看上图,我们发现,这里有五个对象,分别是Menu,MenuItem,Command,OpenCommand,PasteCommond。

        其中OpenCommand与PasteCommand是Command的泛化关系,我们在前面提到,泛化可以理解为继承,这里如果用JAVA类来表示,应该使用extends。Command是一个抽象类,里面有一个Execute这样的方法。

        Menu依赖MenuItem这个类,他们是一个依赖关系,Menu可以添加MenuItem这样的类,而MenuItem又有一个常量是Command类型,通过前面的介绍,我们可以知道这个是一种关联关系。


3、图形编辑器

        图形编辑器也是一个非常常见的应用,尤其在windows上,应该很多人都用过这个软件,笔者以前上大学的时候就常用它来做图。

        图形编辑器一般都具有一些基本图形,如直线、矩形等,用户可以直接使用基本图形画图,也可以把基本图形组合在一起创建复杂图形。如果区别对待基本图形和组合图形,会使代码变得复杂,而且多数情况下用户认为二者是一样的。组合模式可以用相同的方式处理两种图形。

        我们看一下一个简单的,图形编辑器的抽象类图,如下:


4、图形编辑器分析

Graphics: 基本图形和组合图形的父类,声明了所有图形共同的操作,如Draw;也声明了专用于组合图形管理子图形的操作,如Add、Remove

Line、Rectangle: 基本图形类

GroupGraphics: 组合图形类,与父类有组合关系,从而可以组合所有图形对象(基本图形和组合图形)

Line和Rectangle是基本图形,实现了Draw方法,他们可以看做是一个组合关系。


5、总结

上面只是介绍了两个比较简单的类图案例,类图在UML图形中,可以说是最重要的,我们具体的场景最后都会转化成为类与类之间的关系。

本文只是简单介绍了两个类图,下一篇文章我们会用一个之前举例过的案例,再次来说明一下UML图形,并将之联系起来。



展开阅读全文

没有更多推荐了,返回首页