zoukankan      html  css  js  c++  java
  • 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标记值 {new}
    • 消息的顺序编号
      • 不为第一个消息编号
      • 嵌套消息使用附加数字
    • 条件消息 :在顺序编号后使用方括表示有条件消息
    • 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》{abstract} {ordered}
    • 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





  • 相关阅读:
    SparkSql初级编程实践
    云时代架构之苏宁安全架构演进及实践
    云时代架构之知乎网站架构变迁史
    质量属性的六个常见属性场景之《淘宝网》
    云时代架构之游戏服务器的架构演进
    《架构漫谈阅读心得》
    转换后缀表达式
    约瑟夫环(改进3.0)
    栈结构之后缀表达式
    约瑟夫环(改进2.0)
  • 原文地址:https://www.cnblogs.com/zengyh-1900/p/5523953.html
Copyright © 2011-2022 走看看