UML 类图关系之间的区别 , 傻傻分不清楚 =.=" 求教

keatkeat1987 2014-06-11 09:34:24
刚接触到 UML建图和面向对象思想。对类之前的关系不是很清楚

依赖和关联
1.依赖就是一个对象的方法内部使用了另一个对象(可以是参数传进去的)就是依赖关系

2.关联(单向)就是一个对象的其中一个属性是另一个对象。(对象A可以访问对象B,对象B无法访问对象A)


组合和聚合
1.聚合就是一个对象A的属性有一群对象B,
比如 List<ClassB>
对象B是可以单独使用的,也可以是对象C的聚合

2.组合就是一个对象A的属性有一个(一群?)对象B而且这个对象B是对象A初始化时就需要的,且这个对象B不能被单独使用.

以上是我对关系的了解。(我相信很多地方是不太正确的)

我的困惑是:
1.是否说如果一个对象A的大部分方法都是用到了对象B,那么我就应该把对象B当成对象A的属性,用关联来表示,而非依赖? (什么时候应该是参数,什么时候是属性?)

2.聚合是否就是 List<Class> ?
如果是那么关联和聚合的区别是?

3.组合,比如对象A和对象B,那么对象B是否也可以是对象C的组合?

希望大大们指导一下!感激不尽!
...全文
483 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
OenAuth.Core 2014-07-11
  • 打赏
  • 举报
回复
引用 4 楼 keatkeat87 的回复:
补上 : 购物车与产品是聚合关系吗?
是一个常用的聚合关系,购物车是一个整体,没有产品的购物车是没有实际意义的
OenAuth.Core 2014-07-11
  • 打赏
  • 举报
回复
我的困惑是: 1.是否说如果一个对象A的大部分方法都是用到了对象B,那么我就应该把对象B当成对象A的属性,用关联来表示,而非依赖? 既然大部分方法都用到B,那肯定要把B做成A的一个属性,是关联! 依赖强调的是临时的 2.聚合是否就是 List<Class> ? 通常来说List<>的成员就是聚合关系 但关联和聚合其实没有明确的分界线, 关联强调的是两个类是同一个层次, 而聚合中两个类不处于同个层次,可以看成整体与部分 3.组合,比如对象A和对象B,那么对象B是否也可以是对象C的组合? 组合是一种最强的关系,A包含B的话,B离开A的话就不能单独存在,这种情况其实用的还是比较少的
keatkeat1987 2014-06-12
  • 打赏
  • 举报
回复
补上 : 购物车与产品是聚合关系吗?
keatkeat1987 2014-06-12
  • 打赏
  • 举报
回复
引用 2 楼 devmiao 的回复:
依赖关系: class A { public void foo() { Console.WriteLine("hello"); } } class B { public void bar() { new A().foo(); } } 很显然,B依赖A,删除了A,B就运行不了了。反过来,A不依赖B,删除了B,A照样成立。 关联: class A { public B b; } class B { ... } 那么A关联了B。
谢谢, 怎么决定对象间是依赖而不是关联? 帖子说依赖是属于"使用" 的关系,对象A 使用了 对象B (某个方法调用了对象B) 关联是"拥有"的关系,对象A拥有对象B (某个属性是对象B) 举个题目: 一次购物活动。 设计的对象有3个 人,购物车,产品 人和购物车是单向关联关系 人有个购物方法, 方法依赖产品 是这样吗?
devmiao 2014-06-11
  • 打赏
  • 举报
回复
依赖关系: class A { public void foo() { Console.WriteLine("hello"); } } class B { public void bar() { new A().foo(); } } 很显然,B依赖A,删除了A,B就运行不了了。反过来,A不依赖B,删除了B,A照样成立。 关联: class A { public B b; } class B { ... } 那么A关联了B。
wangnaisheng 2014-06-11
  • 打赏
  • 举报
回复
第1章课程定位与教学案例综述. 1.1职业岗位能力需求分析 1.2课程设置和课程定位分析 1.3WebShop电子商城介绍 1.3.1电子商城需求分析 1.3.2电子商城系统设计 1.3.3电子商城数据库设计 1.4LibraryMIS图书管理系统介绍 1.4.1图书管理系统需求分析 1.4.2图书管理系统系统设计 1.4.3图书管理系统数据库设计 习题 第2章面向对象技术和建模基础 2.1面向对象方法 2.1.1面向对象方法的基本思想 2.1.2面向对象方法的发展 2.2面向对象的基本概念与特征 2.2.1面向对象的基本概念 2.2.2面向对象的主要特征 2.3面向对象分析 .2.3.1处理复杂问题的原则 2.3.200A方法的基本步骤 2.4面向对象设计 2.5面向对象实现 2.6面向对象方法的内涵 2.7软件建模概述 2.7.1软件建模的概念 2.7.2软件建模的用途 2.7.3软件建模的优点 习题 第3章UML简介 3.1UML的发展 3.1.1UML的发展历程 3.1.2理解UML建模 3.2UML的特点 3.3UML的结构 3.3.1UML的事物 3.3.2UML关系 3.4UML的视图 3.4.1用例视图 3.4.2逻辑视图 3.4.3并发视图 3.4.4组件视图 3.4.5部署视图 3.5UML图形符号 3.5.1用例图 3.5.2类图 3.5.3对象图 3.5.4状态图 3.5.5活动图 3.5.6顺序图 3.5.7协作图 3.5.8组件图 3.5.9部署图 3.5.10UML 2.0新特性 3.6UML建模基本流程 习题 第4章UML建模工具简介 4.1常用UML建模工具 4.1.1 Rational Rose 4.1.2Enterprise Architect 4.1.3Together 4.1.4PowerDesigner 4.1.5 Visi0 4.1.6Tnffun Plat0 4.2Rational Rose安装与配置 4.2.1Rational Rose的运行环境 4.2.2Rational Rose的安装 4.2.3Rational Rose的配置 4.3使用Rational Rose建模 4.3.1Rational Rose主菜单 4.3.2Rational Rose的视图 4.3.3 Rational Rose建模的基本过程 习题 第5章需求建模 5.1用例模型概述 5.2用例图组成 5.2.1参与者 5.2.2系统 5.2.3用例 5.3识别和描述用例.. 5.3.1识别用例 5.3.2绘制WebShop电子商城用例图 5.3.3通过包对用例进行合理规划 5.3.4WebShop电子商城用例图(不含关系) 5.3.5用例描述 5.4用例间的关系 5.4.1泛化关系 5.4.2使用关系 5.4.3包含关系 5.4.4扩展关系 5.4.5关系小结 5.4.6WebShop电子商城用例图(含关系) 习题 第6章静态建模 6.1静态建模概述 6.2类图概述 6.3类图的基本组成 6.3.1类的概述 6.3.2绘制带属性的实体类 6.3.3绘制带操作的实体类 6.3.4绘制边界类图 6.3.5绘制控制类图 6.3.6UML中的类与语言中的类 6.4类之间关系 6.4.1关联关系 6.4.2聚合关系 6.4.3组合关系 6.4.4泛化关系 6.4.5实现关系 6.4.6依赖关系 6.5对象图 6.5.1对象图概述 6.5.2对象图组成 6.5.3类图和对象图的比较 习题 第7章数据库建模 7.1PowerDesigner简介 7.2PowerDesigner安装和启动 7.2.1PowerDesigner的安装 7.2.2PowerDesigner的启动 7.3PowerDesigner概念数据模型 7.3.1概念数据模型概述 7.3.2PowerDesigner概念数据模型概述 7.4 PowerDesigner物理数据模型 习题 第8章动态建模 8.1动态建模概述 8.2状态图 8.2.1状态图概述 8.2.2状态图组成 8.2.3绘制员工下班回家状态图 8.3活动图 8.3.1活动图概述 8.3.2活动图组成 8.3.3绘制WebShop电子商城活动图 8.4活动图拾遗 8.4.1活动图与流程图的比较 8.4.2活动图与状态图的比较 8.5顺序图 8.5.1顺序图概述 8.5.2顺序图组成 8.5.3绘制WebShop电子商城顺序图 8.6协作图 8.6.1协作图概述 8.6.2协作图组成 8.6.3绘制WebShop电子商城协作图 8.7 顺序图拾遗 8.7.1 顺序图与协作图的比较 8.7.2 顺序图与协作图的互换 习题 第9章物理建模 9.1物理建模概述 9.1.1硬件 9.1.2软件 9.2组件图 9.2.1组件图概述 9.2.2组件图组成 9.2.3绘制WebShop电子商城组件图 9.3部署图 9.3.1部署图概述 9.3.2部署图组成 9.3.3绘制WebShop电子商城部署图 习题 第10章双向工程 10.1双向工程简介 10.2正向工程(生成Java代码) 10.3逆向工程 习题 第11章统一软件过程RUP 11.1RUP简介 11.2RUPT作流程 11.2.1业务建模 11.2.2需求 11.2.3分析设计 11.2.4实施 11.2.5测试 11.2.6部署 11.2.7配置与变更管理 11.2.8项目管理 11.2.9环境 11.3RUP迭代过程 11.3.1初始 11.3.2细化 11.3.3构造 11.3.4移交 11.3.5迭代计划示例(构造阶段) 习题 附录A综合实训 附录B Rational Rose2003主菜单 参考文献...

13,190

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 分析与设计
社区管理员
  • 分析与设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧