迈向对象设计

目标:

  • 理解动态和静态对象设计建模
  • 尝试敏捷建模,或用于绘图的UML CASE工具。

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

  • 编码。在编码的同时进行设计,更为理想的是使用再工程这样的强大工具。根据想象的模型直接编码。
  • 绘图,然后编码。在白板或UML CASE工具中绘制一些UML,然后转到第一种方式,使用文本增强型集成开发缓解进行编码。
  • 只绘图,不编码。使用工具从图中生成一切。

如果我们采用绘图然后编码的方式,那么对常用的图形投入的能力应该是有价值的。本章介绍的是在对象设计和编码前进行轻量级绘图,并且提供了一些使其物有所值的方法。

敏捷建模和轻量级UMl图形

一些敏捷建模的目标是减少常用图形,建模的目的是为理解和沟通而不是构件文档,ing给西永数码相片可以简化文档编制工作。可以尝试简单的敏捷建模方法,这些实践包括使用大量白板或特质的白色塑胶静电贴片,使用白版本、数量相机和打印机捕获“UML草图”。

敏捷建模还包括:

  • 与其他人一同建模
  • 并行创建若干模型。

UML CASE 工具

  • 能够与流行的文本增强型ID集成的UML CASE。
  • 选择不仅能够对类图还能对交互图进行逆向工程的UML工具。

在墙上的敏捷建模和使用集成到文本增强型IDE的UML CASE工具能够互相补充。应该在不同阶段的活动中尝试这两种方式。

编码前绘制UML需要花费多少时间

对于时间定量为三周的迭代,在迭代开始时,应该“在墙上”花费几个小时或之多一天的时间,用于对有难度和创造性的部分绘制UML草图以得到其详细对象设计。如果时草图的化,可能还需要拍摄和答应其数码相片。然后,在迭代的剩余时间里,以这些UML图作为灵感的起点,将这些转化为代码,但是还要认识到代码中的最终设计会有分歧和改进。较短的绘图/草图活动可能会出翔在整个迭代过程中。

如果时敏捷建模,那么在每次后续建模活动之前,对增加的基础课进行逆向工程,生成UML图,将其打印出来,然后在构件草图的活动中应用它们。

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

对象模型有两种类型:动态和静态。动态建模有助于设计逻辑、代码行为或方法体。动态模型倾向于创建更为有益、困难和重要的图形。静态建模有助于设计包、类名、属性和方法特征标记的定义。

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

动态对象建模

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

因此本书以交互图作为介绍动态对象建模的起点。

应该把时间花费在交互图,而不仅是类图上。

注意,在应用职责驱动设计和GRASP原则的动态建模过程中,这一准则尤为重要。

UML 工具集中还有一些其他动态工具,包括状态机图和活动图。

静态对象建模

最常见的静态对象建模时使用UML类图。

UML中支持静态建模的其他制品包括包图和部署图。

基于UML表示法技术的对象那个设计技术的重要性

对象设计技巧与UML表示法技巧:

  • 绘制UML反映了对设计做出的决策。
  • 对象设计技术并不一定要了解如何绘制UML。
  • 基本的对象设计需要了解的时:
    • 职责分配原则。
    • 设计模式。

其他对象设计技术:CRC卡

人们对不同设计方法各有偏好除了因为熟悉该种方法外,更重要的时因为每个人有不同的认知方式。不要假设所有人都认为图形优于文本,反之亦然。

类职责协作(CRC)卡时流行的面向文本建模技术。

CRC卡时纸质的索引卡片,其中记录了类的职责和协作。每张卡片表示一个类。在CRC建模活动中,一组人围坐桌旁讨论并编写卡片,他们通过“如果...怎样”的对象场景,考虑对象必须做什么,以及必须与哪些其他对象协作。

results matching ""

    No results matching ""