深入学习UML对象及关系图
本文和大家重点讨论一下UML对象及关系图,主要向大家介绍一下UML对象图和UML关系图,希望通过本文的学习你对UML对象及关系图有明确的认识。
UML对象图
对象与类的关系
对象的概念与特性
◆对象代表一个单独的、可确认的物体、单元或实体,它可以是具体的也可以是抽象的,在问题领域里有确切定义的角色。换句话说,对象是边界非常清楚的任何事物
◆状态(属性):对象的状态包括对象的所有属性(通常是静态的)和这些属性的当前值(通常是动态的)
◆行为(方法,事件):没有一个对象是孤立存在的,对象可以被操作,也可以操作别的对象。而行为就是一个对象根据它的状态改变和消息传送所采取的行动和所做出的反应
◆标识(名字):为了将一个对象与其它所有对象区分开来,我们通常会给它起一个“标识”
UML对象及关系图中对象与类
◆对象是一个存在于时间和空间中的具体实体,而类仅代表一个抽象,抽象出对象的“本质”。
◆类是共享一个公用结构和一个公共行为对象集合
◆类是静态的,对象是动态的;类是一般化,对象是个性化;类是定义,对象是实例;类是抽象、对象是具体
UML关系图
类之间的UML关系图软件开发
UML对象及关系图中类间关系有很多种,在大的类别上可以分为两种:纵向关系、横向关系。
纵向关系就是继承关系,它的概念非常明确,也成为OO的三个重要特征之一,这里不过多的讨论。
横向关系较为微妙,按照UML的建议大体上可以分为四种:
1.依赖(Dependency)
2.关联(Association)
3.聚合(Aggregation)
4.组合(Composition)
它们的强弱关系是没有异议的:依赖<关联<聚合<组合
然而UML对象及关系图中它们四个之间的差别却又不那么好拿捏,需要好好体会。
1.依赖:
UML表示法:虚线+箭头
关系:"...usesa..."
UML对象及关系图中的依赖关系最为简单,也最好理解,所谓依赖就是某个对象的功能依赖于另外的某个对象,而被依赖的对象只是作为一种工具在使用,而并不持有对它的引用。
2.关联:
UML表示法:实线+箭头
关系:"...hasa..."
UML对象及关系图中所谓关联就是某个对象会长期的持有另一个对象的引用,而二者的关联往往也是相互的。关联的两个对象彼此间没有任何强制性的约束,只要二者同意,可以随时解除关系或是进行关联,它们在生命期问题上没有任何约定。被关联的对象还可以再被别的对象关联,所以关联是可以共享的。
3.聚合:
UML表示法:空心菱形+实线+箭头
关系:"...ownsa..."
UML对象及关系图中的聚合是强版本的关联。它暗含着一种所属关系以及生命期关系。被聚合的对象还可以再被别的对象关联,所以被聚合对象是可以共享的。虽然是共享的,聚合代表的是一种更亲密的关系。
4.组合:
UML表示法:实心菱形+实线+箭头
关系:"...isapartof..."