类图关系

1.类图概述

何谓类图?

它描述的是显示一组类、接口、协作以及它们之间关系的图。

类与类之间有哪些关系?

四种关系:依赖、关联【含特殊的聚合和复合(组合)】、泛化(继承)、实现。

2.依赖关系

依赖关系是两个类之间的语义关系,对一个类(提供者)的改变可能会影响或者提供消息给其他类(客户)。也就是客户以某种方式依赖于提供者。

依赖强调的是类发生改变引起其他类相应地变化,它不仅可以由于类之间的关联引起,也可以由于类的参数变化(该参数也是类)以及类之间消息传递机制引起。只要是类发生了变化引起另一个类的变化,就可以说成存在依赖。

比如TV类和Channel类代码:

    //电视类
    public class TV
    {
        //频道类 作为形参 产生依赖关系
        public void ChangeChannel(Channel c) { }
    }
    //频道类
    public class Channel { }

其类图关系设计:

3.关联关系

关联关系表示元素之间的一种固有关系,是描述类之间的结构关系。

关联关系表现为一个对象能够获得另一个对象的实例引用并调用它的服务(即使用它)。定义了类或对象之间的关系规则,表示某个类以属性的形式包含其他类的对象,也就一般表现为类的属性(实例变量)。

比如Company类和Employee类代码:

    //公司类
    public class Company
    {
        //以属性方式 包含其对象 产生关联关系
        public List<Employee> Employees { get; set; }
    }
    //员工类
    public class Employee { }

其类图关系设计:

4.聚合关系

聚合关系是一种特殊的关联关系,聚合是整体和个体之间的关系,即has-a关系,此时整体与部分之间是可以分离的,它们可以具有各自的生命周期,部分可以属于多个整体对象,也可以作为多个整体对象共享。

聚合表示两个类的实例之间存在一种拥有或属于关系,是较弱的“整体-部分”关系,或逻辑上的“隶属”关系。

比如Car类和Wheel类代码:

    //汽车类
    public class Car
    {
        //以属性方式 包含其对象 产生聚合关系
        public List<Wheel> Wheels { get; set; }
    }
    //轮子类
    public class Wheel { }

其类图关系设计:

5.复合关系

复合关系相比聚合关系整体和部分不可以分离的,也就是部分类的生命周期不独立整体类的生命周期,即部分类不能脱离整体而单独存在。整体和个体是contains-a关系。

比如Head类和Mouth类代码:

    //头类
    public class Head
    {
        //以属性方式 包含其对象 产生复合关系
        public Mouth Mouth { get; set; }
    }
    //嘴类
    public class Mouth { }

其类图关系设计:

6.继承关系

继承关系指出类之间的“一般与特殊关系”。它只使用在类型上,而不是实例上。在类中,一般元素被称为超类或父类,而特殊元素称之为子类。

比如Person类和Man类代码:

    //人类
    public class Person
    {
        public int Age { get; set; }
    }
    //男人类  继承Person类
    public class Man : Person { }

其类图关系设计:

7.实现关系

实现关系是类之间的语义关系。指定了两个实例之间的一个合同,实体定义一个合同,而另一个实体保证履行该合同。实现关系通常用在接口以及实现该接口的类之间。

其ITimeProvider类和TimeProvider类代码:

    //时间提供者 接口类
    public interface ITimeProvider
    {
        DateTime GetDate();
    }
    //时间提供者 实现类  继承ITimeProvider接口
    public class TimeProvider : ITimeProvider
    {
        public DateTime GetDate()
        {
            throw new NotImplementedException();
        }
    }

其类图关系设计:

8.关系强弱

从强到弱的结果是:继承=实现>复合关系>聚合关系>关联关系>依赖关系。

时间: 2024-08-28 07:33:58

类图关系的相关文章

UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)

http://www.cnblogs.com/olvo/archive/2012/05/03/2481014.html http://sundensky.blog.163.com/blog/static/7728873420109299167434/ 继承.实现.依赖.关联.聚合.组合的联系与区别 分别介绍这几种关系: 继承 指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系:在Java中此类关系

UML类图关系表示方法

本文转载: http://blog.csdn.net/fengsh998/article/details/8105631 分类: UML2012-10-24 10:18 1175人阅读 评论(0) 收藏 举报 UML类图关系的表示方法,主要包括关联,聚合,泛化,实现,依赖等内容,希望通过本节的学习大家对UML类图关系的表示方法有一定的掌握.下面是具体介绍. UML基础 1:UML类间关系的种类 2:关联 UML类图关系中关联描述了系统中对象或实例之间的离散连接,关联带有系统中各个对象之间关系的信

UML类图关系(泛化(继承)、实现、依赖、关联、聚合、组合)

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

UML类图关系(转,添加了实例)

UML类图关系(泛化 .继承.实现.依赖.关联.聚合.组合) 在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 1. 泛化(Generalization) [泛化关系]:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为.例如:老虎是动物的一种,即有老虎的特性也有动物的共性. [箭

【UML】UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)

http://www.cnblogs.com/olvo/archive/2012/05/03/2481014.html 继承.实现.依赖.关联.聚合.组合的联系与区别 分别介绍这几种关系: 继承 指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系:在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性:  实现 指的是一个class类实现interface接口(可以是多个)的

UML类图关系全面剖析

UML的类图关系分为: 关联.聚合/组合.依赖.泛化(继承).而其中关联又分为双向关联.单向关联.自身关联:下面就让我们一起来看看这些关系究竟是什么,以及它们的区别在哪里. 1.关联 双向关联:C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法. 在GOF的设计模式书上是这样描述的:虽然在分析阶段这种关系是适用的,但我们觉得它对于描述设计模式内的类关系来说显得太抽象了,因为在设计阶段关联关系必须被映射为对象引用或指针.对象引用本身就是有向的,更适合表达我们所讨论的那种关系.所以这

UML类图关系

UML类图关系(泛化 .继承.实现.依赖.关联.聚合.组合) 在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 1. 泛化(Generalization) [泛化关系]:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为.例如:老虎是动物的一种,即有老虎的特性也有动物的共性. [箭

UML类图关系大全

UML类图关系大全 1.关联 双向关联: C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法. 在GOF的设计模式书上是这样描述的:虽然在分析阶段这种关系是适用的,但我们觉得它对于描述设计模式内的类关系来说显得太抽象了,因为在设计阶段关联关系必须被映射为对象引用或指针.对象引用本身就是有向的,更适合表达我们所讨论的那种关系.所以这种关系在设计的时候比较少用到,关联一般都是有向的. 使用ROSE 生成的代码是这样的: class C1 ...{ public:     C2* th

图解六大UML类图关系

在学习UML类图的过程中,UML类图关系是必须要掌握的问题,UML定义的关系主要有六种:依赖.类属.关联.实现.聚合和组合.下面对其定义和表示方法逐一说明. UML类图关系简介 依赖(Dependency):元素A的变化会影响元素B,但反之不成立,那么B和A的关系是依赖关系,B依赖A:类属关系和实现关系在语义上讲也是依赖关系,但由于其有更特殊的用途,所以被单独描述.UML中用带箭头的虚线表示Dependency关系,箭头指向被依赖元素. 类属(Generalization):通常所说的继承(特殊