P3_C14-16:面向对象设计

On to Object Design


阅读书上第14章

三种设计对象的方式

  1. code
  2. draw, then code
  3. only draw

编码前会是UML需要话费多少时间

  • 几个小时至多1天

Designing objects

  • 动态建模:交互图(顺序图或通信图等)
  • 静态建模:最常见的UML类图

Fundamental object design

  • principle of responsibility assignment
  • design patterns

UML interaction diagrams


阅读书上第15章

interaction diagrams

  • 描述对象间通过消息的交互,分为sequence和communications
  • sequence(示例:书上P163)
    • 优势:能够清晰表示消息的顺序和时间顺序,有大量详细表示法选项
    • 劣势:强制在右侧增加新对象,消耗水平空间
  • communications(示例:书上P164)
    • 优势:空间效用——能够在二维空间内灵活地增加新对象
    • 劣势:不易查阅消息的顺序,表示法选项比较少

顺序图

  • singleton
    • 在生命线框图右上角写 一个“1”标示
  • 基本表示法(书上P166)
    • alt: 互斥的有条件信息
    • loop: 保护信息为真的循环片段
    • opt:保护信息为真的可选片段
    • par:并行执行的并行片段
    • region:只能执行一个线程的临界片段
    • 构造对象/创建实例:虚线, create消息
  • 对集合的迭代
    • 生命线参与者应该标示一个对象,而不是集合
  • 对类调用静态(或类)方法的消息
    • 生命线框图表示接收消息的对象是类,《metaclass》

通信图

  • 基本画法(P175)
    • link:连接两个对象的路径
    • message:许多消息可能沿同一路径,消息有id和流向箭头
  • 实例的创建
    • UML构造型 《create》
    • UML标记值
  • 消息的顺序编号
    • 不为第一个消息编号
    • 嵌套消息使用附加数字
  • 条件消息 :在顺序编号后使用方括表示有条件消息
  • mutually exclusive conditional path
    • eg. 1a[test]和1b[not test]
  • iteration or looping
    • *和可选的迭代子句表示迭代
  • iteration over a collection

UML class diagrams


阅读书上第16章

introduction

  • 静态对象建模,用类图表示类、接口及其关联

design class diagrams(DCD)

  • classifier(类元)
  • ways to show UML attribute
    • 属性文本、关联线
    • 默认属性的可见性为private
    • 领域模型的关联线没有箭头,类图的关联线有箭头
    • 数据类型对象使用属性文本表示法,对其他对象使用关联线
  • operations and methods
    • 假设当前UML版本中包含了返回值类型
    • 默认操作的可见性为public
    • 操作是声明,方法是操作的实现
  • keywords
    • 常用关键字:《actor》《interface》
  • stereotypes, profiles, and tags
  • property and property string
    • 如visibility等,也可以自定义
  • abstract classes and abstract operation
    • {leaf}:表示final class和不能被子类复写的操作
    • {abstr}:抽象类和操作
    • 泛化(generalization):子类到超类的实现和空心三角箭头
  • singleton classes
    • 框图右上角标识 1
  • dependency(依赖)
    • 依赖线常出现在类图和包图中, 虚线箭头线
    • 使用依赖线描述对象之间的全局变量、参数变量、局部变量和静态方法的依赖
  • 接口实现:interface realization
  • composition over aggregation 组合优于聚合
    • 聚合:模糊的关联, 组合:很轻的整体-部分聚合关系
    • 组合:实心棱形线
      • 在某一时刻,部分的实例只属于一个组成实例
      • 部分必须总是属于组合的
      • 组成必须要负责创建和删除其部分,如果纸质棋盘被销毁,棋格也将不存在
  • association class
    • 将关联本身作为一个类
  • qualified association





posted on 2016-05-24 19:27  曾炒煮煎炖  阅读(157)  评论(0编辑  收藏  举报