UML笔记三
分类:
文章
•
2024-06-14 11:59:10
- UML图的使用原则:
1)UML是以简易图形描述程序对象之间的联系。因而它适合对具体问题或功能的描述分析,而不应该是文档式全方位描述项目。
2)可保留UML图情况一:当一种UML展现了项目通用的设计模式或思路。
3)可保留UML图情况二:记录了比代码更易表述的设计意图的图
*个人认为应该讲项目进行功能分离后,对各个功能进行分别UML图,理清逻辑。
- UML图顺序:
没有固定的顺序,在熟练后应该根据具体问题来使用UML图的顺序,但一下提供了正常逻辑UML图顺序:
1)行为(逻辑顺序)优先:时序图
以电话拨号行为为例,他的行为顺序:按钮--》消息--》处理中心--》屏幕显示--》发出电子声音 发送按钮--》消息--》处理中心--》线路拨号--》屏幕显示。

2)检查结构:
通过时序图可以抽象出协作图的类图,初始类图

由时序图简单生成的初始类图是无法考虑到对象之间的组合、构成、继承等联系的。因而需要进行改进和逻辑的完善。
改善一:初始类图中button引用了Dialler对象,这显然不合理,button产生了对Dialler的依赖。因此需要建button与Dialler的关联拆分。可以在它们之间设置一个接口进行分离(?监听模式):

Button需要一个标记(token)去标识消息内容。当Button传递消息后将调用 ButtonListener 接口的 buttonPressed 方法,并传送这个标记。以上边分离了button和Dialler的关系。
改善二:在完成改善一后,Dialler继承自ButtonListener,感觉非常的怪异。Dialler存在一个ButtonPressed的方法,显然Dialler与Button还存在一些关联。我们可以通过一个适配器来解决,并且token也会消失。

3)反向修正:
在类图进行修正后,显然的原时序图已经无法使用需要进行修订:

以上是一个简单使用UML优化结构的例子