类间关系
来源:互联网 发布:国家文物局官网通知 编辑:程序博客网 时间:2024/05/10 08:18
一.请针对下列类间关系,给出实例(类图)、物理意义及其相关语义:
泛化、聚合、组合、关联、依赖(消息传递)等。
1、泛化
概念:泛化是一种一般与特殊、一般与具体之间关系的描述,具体描述建立在一般描述的基础之上,并对其进行了扩展。在程序中是通过继承类实现的。比如狗是对动物的具体描述,在面向对象设计的时候一般把狗设计为动物的子类。
表示方法:空心三角形箭头的实线,子类指向父类
2、依赖
概念:是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖,在程序中一般表现为类A中的方法需要类B的实例作为其参数或者变量,而类A本身并不需要引用类B的实例作为其成员变量。
表示方法:虚线箭头,类A指向类B。
3、关联
概念:表示类与类之间的联接,它使一个类知道另一个类的属性和方法,这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,在程序中被关联类B以类属性的形式出现在关联类A中,也可能是关联类A引用了一个类型为被关联类B的全局变量
表示方法:实线箭头,类A指向类B
4、聚合
概念:聚合关联关系的一种特例,是强的关联关系。聚合是整体和个体之间的关系,即has-a的关系,整体与个体可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享。程序中聚合和关联关系是一致的,只能从语义级别来区分;
表示方法:尾部为空心菱形的实线箭头(也可以没箭头),类A指向类B
5、组合
概念:组合也是关联关系的一种特例。组合是一种整体与部分的关系,即contains-a的关系,比聚合更强。部分与整体的生命周期一致,整体的生命周期结束也就意味着部分的生命周期结束,组合关系不能共享。程序中组合和关联关系是一致的,只能从语义级别来区分。
表示方法:尾部为实心菱形的实现箭头(也可以没箭头),类A指向类B
各种关系的强弱顺序:
泛化 > 组合 > 聚合 > 关联 > 依赖
二.请用面向对象思想分析人们认识世界和发展世界的过程。
从现实世界中客观存在的事物(即对象)出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式,强调直接以问题域(现实世界)中的事物为中心来思考问题,认识问题,并根据这些事物的本质特点,把它们抽象地表示为系统中的对象,作为系统的基本构成单位(而不是用一些与现实世界中的事物相关比较远,并且没有对应关系的其它概念来构造系统).这可以使系统直接地映射问题域,保持问题域中事物及其相互关系的本来面貌.
- 类间的关系
- 类间的关系
- 类间的关系
- uml类间关系
- 类间关系
- 类间关系
- 类间的关系
- 类间的关系
- 类间的关系
- 类间的关系
- 类间的关系
- 类间关系
- 类间关系
- UML类间的关系
- 类间关系的理解
- 类间关系的种类
- 类间聚集关系理解
- UML类间的关系
- titan配置相关
- 根据生日计算年龄
- KindEditor-新添加的字符串进行html标签删除
- Liunx-使用Buildroot工具制作交叉编译器
- 一键端2
- 类间关系
- 图片轮播
- jQuery验证控件jquery.validate.js使用说明
- Drools6.4动态加载规则之(二)动态创建kjar
- Ubuntu 12.04找不到software source
- oracle insert数据标识符无效问题 oracle ORA-00904: "字段名": 标识符无效
- LRU缓存实现(Java)
- android studio中如何解决没有出现“import project”的情况
- Hibernate 检索方式