UML和模式应用学习笔记(7)——迈向对象设计

  开发者如何设计对象?一般采用如下三种方式:

  1. 编码。在编码的同时进行设计(java、C#、---),更为理想的是使用诸如再工程(refactoring)这样的强大工具。根据想象的模型直接编码。
  2. 绘图,然后再编码。在白板或UML CASE工具中绘制一些UML,然后转到第一种方式,使用文本增强型集成开发环境(IDE,如Eclipse或Visual Studio)进行编码。
  3. 只绘图,不编码。使用工具从图中生成一切。“只绘图”是不当之词。因为实际上还是会在UML图形元素上附加文本的编程语言。

  一些敏捷建模的目标是减少常用图形,建模的目的是为理解和沟通而不是构建文档。可以尝试简单的敏捷建模方法——“UML草图”。一般中小公司都采用这种方式,而大公司都有很严格的UML制品。

  设计对象:什么是静态和动态建模

  对象模型有两种类型:动态和静态。

  动态模型有助于设计逻辑、代码行为或方法体,例如UML交互图(顺序图或通信图)。注:这里的顺序图是UML顺序图,并非是上一篇文章中的系统顺序图(SSD)。动态模型倾向于创建更为有益、困难和重要的图形。

  静态模型有助于设计包、类名、属性和方法特征标记(但不是方法体)的定义,例如UML类图

UML和模式应用学习笔记(7)——迈向对象设计_第1张图片

  静态和动态建模之间具有关系,敏捷建模对此的实践是并行创建模型:花费较短的时间创建交互图(动态),然后转到对应的类图(静态),交替进行。

  动态对象建模

  UML初学者(包括我)一般会认为静态视图的类图是重要图形,但事实上。大部分具有挑战性、有益和有效的设计工作都会在绘制UML动态视图的交互图的时候发生。需要哪些对象,它们是徒河通过消息和方法进行协作,通过动态对象建模(例如绘制顺序图)才能真正落实这些准确和详细的结论。

 准则 应该把事件花费在交互图(顺序图或通信图),而不仅仅是类图上。忽视这一准则是十分常见的UML错误实践。

  注意:在应用职责驱动设计和GRASP原则的动态建模过程中,这一准则尤其重要。在第一篇文章也提到,这里又出现了,索性这里先稍微解释一下.所谓的职责驱动设计,简单地说就是职责必须匹配。什么是职责呢?简单地说,一个类或构件的职责包括两个方面:一个是指导的事,对于一个类来说就是他的属性;一个是能做的事,对于一个类来说就是他的方法(来自百度百科)。虽然看上去不是很严谨,但可以通俗理解了职责驱动设计是以职责为中心。关于职责驱动设计和GRASP会在后续文章详细讨论。

  静态对象建模

  最常见的静态对象建模是使用UML类图。这没什么好说的。注意:如果开发者应用了并行创建若干模型的敏捷建模实践,则他们应该同时绘制交互图和类图。

  最后说明一点, 对象设计技能比UML表示法技能更重要

  对象设计技能与UML表示法技能

  绘制UM反映了对设计做出的决策。

  对象设计技术并不一定要了解如何绘制UML

  基本的对象设计需要了解的是:

  • 职责分配原则
  • 设计模式

  下篇将介绍应用UML图的详细对象设计。主要是交互图和类图。

你可能感兴趣的:(学习笔记)