一、UML类关系分析

1、关联(asociation)

一般是一方拥有另一方对象的指针。箭头的方向是访问方向。

2、聚合(Aggregation)和组合(Composition)

聚合和关联一般不做区分,聚合也是一方拥有另一方指针。

组合是一方拥有另一方对象。

3、泛化(Generalization)

是类的继承。

4、依赖(Dependency)

依赖一般是:类A一般是在把B当做局部变量、或者访问B静态方法、或者把B作为函数的参数

5、实现(Realization)

一般是类继承接口,让类来实现接口中函数,在Java中常见。

6、模板

要表示成这个意思。参考【8】

template<class T>
class A
{
....
}

StarUML中,右键菜单添加

二、区别和联系

1、关联(asociation)和依赖(dependency)

uml图如下:

代码如下:

public class Person //关联
{
Car car=new Car();//C++中则是 Car car;
} public class Person //依赖 {
public void buy(Car car)
{
} }

他们之间的区别在于:关联会在类Person存在一个属性Car car;依赖只是在把Car的实例作为Person成员函数的参数,或作为函数的局部变量

虚箭头,表示在类中要实例化一个类的对象【3】

实箭头,表示在类中要引用一个类的对象

参考:1、UML中关联和依赖的区别

2、UML类图关系大全

【3】、UML中几种类间关系

【4】、GOF设计模式中描述箭头和三角的涵义

5、认识UML类图元素_java之UML

6、UML类图关系

7、类间四大关系

【8】、UML类图关系大全

9、StarUML试用

【建模】UML类关系分析的更多相关文章

  1. UML类关系(依赖,关联,聚合,组合,泛化,实现)

    转自https://blog.csdn.net/k346k346/article/details/59582926   在学习面向对象设计时,类关系涉及依赖.关联.聚合.组合和泛化这五种关系,耦合度依 ...

  2. UML类关系:依赖,关联,聚合和组合

    UML图示例:(可使用StartUML来画图,小巧^_^) http://www.blogjava.net/lukangping/archive/2010/08/01/327693.html 聚合:表 ...

  3. UML 类关系及画法

    1 泛化 [泛化关系]:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为.例如:老虎是动物的一种,即有老虎的特性也有动物的共性. [箭头指向]:带三角箭头的实线,箭头指向 ...

  4. UML 类关系图(泛化,实现,依赖,关联(聚合,组合))

    UML的构造快包含3种:  (1) 事物(4种):结构事物,行为事物,分组事物,注释事物 (2) 关系(4种):泛化关系,实现关系,依赖关系,关联关系 (3) 图(10种):用例图,类图,对象图,包图 ...

  5. uml类关系

    类间的关系:http://www.open-open.com/lib/view/open1328059700311.html 泛化 . 实现 . 关联 . 组合 . 聚合 . 依赖 泛化是继承类,实现 ...

  6. UML类关系:依赖、关联、聚合、组合

    1,依赖关系(Dependency) 单向,表示一个类依赖于另一个类的定义,其中一个类的变化将影响另外一个类,是一种“use a”关系 如果A依赖于B,则B表现为A的局部变量,方法参数,静态方法调用等 ...

  7. UML类图分析

    继承: 实现: 关联: 依赖: 组合: 聚合:

  8. 我对uml类图关系的理解

    uml类图的关系: 泛化关系也就是继承. 实现关系就是一个类实现另外一个接口. 依赖关系就是一个类使用了另外一个类,是一种使用关系,在这个类的某个服务中需要另外一个类来协助. 关联关系就是一类拥有另外 ...

  9. UML类图还不懂?来看看这版乡村爱情类图,一把学会!

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.码场心得

随机推荐

  1. webpack 配置 (支持 React SCSS ES6 编译打包 和 模块热更新 / 生成SourceMap)

    1.首先是目录结构 |-node_modules/ #包文件 |-build/ #静态资源生成目录 |-src/ #开发目录 |-js/ |-index.js #入口文件 |-app.js #Reac ...

  2. public static <T> Map<String, T> json2map

    /** * json string convert to map with javaBean */ public static <T> Map<String, T> json2 ...

  3. android - 调试

    在android总调试程序,不同于普通的java程序,我们可以通过'Windows->Show View->Other->LogCat"打开'LogCat'工具,选择下拉选 ...

  4. Spring 环境搭建

    1.导包 2.编写Helloworld程序 package cn.test.helloWorld; public class HelloWorld { public void sayHello(){ ...

  5. Hibernate 性能优化之查询缓存

    查询缓存是建立在二级缓存基础之上的,所以与二级缓存特性相似,是共享的,适合修改不是很频繁的数据 查询缓存不是默认开启的,需要设置      1.在cfg文件中配置 <property name= ...

  6. C++简单工厂模式

    核心思想:用一个工厂类根据不同的输入条件new出不同的派生类指针,然后由多态调用不同派生类中virtual函数,得到不同的结果 所有的判断处理在工厂类中完成,通过CreateFactory函数,根据不 ...

  7. Objective-C内存管理与原理

    尽管苹果在 iOS 5/ Mac OS X 10.7 开始导入ARC,利用 Xcode4.2 可以使用该机能.ARC就是自动引用计数,是一项为Objective - C程序在编译时提供自动内存管理的功 ...

  8. 妙用git rebase --onto指令

    有时候,在分支提交更改的时候,会忘记rebase,就直接提交上去,或者忘记和本地远程分支做merge,就直接rebase了别的分支.有时候真希望有一种切片的方式,让自己的分支只需要接上某一段.这个时候 ...

  9. CentOS6.5安装LAMP环境APACHE的安装

    1.卸载apr.apr-util [root@centos6 LAMP]# yum remove apr apr-util 2.编译安装apr-1.5.1.tar.gz [root@centos6 L ...

  10. css position 相对定位

    <html> <head> <style type="text/css"> h2.pos_left { position:relative; l ...