zoukankan      html  css  js  c++  java
  • 第三章类图基础

    最近在看文视点的UML精粹:标准对象建模语言简明指南,想了解下UML和面向对象的相关知识,感觉自己在OO方面就是弱爆了,恩,这是看书的一些笔记。

    1、class diagram:描述系统中的对象类型,以及他们之间的各种静态关系。类图也展示类的性质和操作,以及应用于对象连接方式的约束。

         在UML中,feature=property+operation。property代表类的结构特性。两种表示法为:attribute+association.

          1)attribute表示法把性质描述成类方框中的一行文本。属性的完整形式为:visibility(公开的(+)还是私有的(-)) name(类如何引用属性,类似字段名):type(哪一种对象可以放进属性的限制,类似字段类型) multiplicity(多重性)=default(在创建期间没有指定值时新创建对象的值) {property-string}(允许你指出属性附加的性质)

          2)association是一个两个类之间的实现实线,方向从源类到目标类性质的名称以及多重性放在关联的目标端。关联的目标端连接到性质所属类型的类。

         multiplicity:指出多少对象可以填充该性质。{1;0..1;*;(*表示0或者更多无上限)}

         多重性术语:OPtional(可选的意味着下限0);Mandatory(强制的意味着下限为1,也可能更多);Single-valued(单值得,意味着上限为1);Maltivalued(多值的意味着上限大于1)(这些多重性术语可以不用通常直接用1;0...1;*表示即可)关联端也可以添加一些其他的允许重复{nonunique}等。

         性质的编程解释:在多数情况下,不给多值性质复制,通过add和remove更新。多值属性意味着集合。(看的似懂非懂的。。好像在说少做属性,多做操作?用集合实现数据结构。)

         双向关联:看两者的关系 然后使用箭头和多重性。

         operation:类知道如何执行的操作。对应于类中的方法。(一般不展示那些简单曹总性质的操作)语法:visibility name (parameter-list)(是指操作的参数类表):return-type {property-string} 参数列表中的参数 :direction(in,out,inout默认为in) name: type=default value。

          操作和方法的不同:从外部看,客户应该不能够识别查询是不是获取方法,修改器是不是设置方法。获取和设置方法的知识完全在类的内部。另操作是对象上可以调用的某些东西--例程声明——而方法是例程体。(eg:若一个超类有3个子类,每个子类都覆盖超类的某操作。则你有一个操作和四个实现它的方法。

          generalization(泛化即继承) 可替换性(substitutability)。

          dependence(依赖)(如果改变一个元素--supplier或目标--的定义会导致改变其他--client或源--类,则这两个元素这件存在依赖关系)依赖只有一个方向,从表示类到领域类。表示类依赖于领域类,领域类改变表示类不得不改变,(最小化依赖,避免环状依赖)(有选择的展示依赖,最好在包图上展示)

    2、UML允许使用任何东西来描述约束,只要放在{}里

    3、不尝试所有的可用的表示,从类、关联、泛化、属性和约束开始,有需要才用其他的;

      

  • 相关阅读:
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
    Rng(求逆元)
    P1306 斐波那契公约数(ksm+结论)
    sort(桶排序+hash)
    牛客多校训练AFJ(签到)
    Educational Codeforces Round 68 (Rated for Div. 2)-D. 1-2-K Game
    Educational Codeforces Round 68 (Rated for Div. 2)-C-From S To T
    The Unique MST(最小生成树的唯一性判断)
    飞跃原野(三维bfs)
  • 原文地址:https://www.cnblogs.com/huhaibo/p/3429818.html
Copyright © 2011-2022 走看看