类与类之间的关系

UML 中将类关系分了好几种,继承,组合,聚合,依赖,关联.呵呵,这一堆名词听起来特不明白,它们之间存在着一个关系的从强到弱,也就是说,它们是一个全集 到子集合说明方式.

我自已通过代码,自已定义了类之间的几种关系,主要是为自已以后的软件设计定义些基础术语(呵呵,搞的像要研究似的,但的确是UML的定义, 太不合我心仪的原因),通过我的定义,类之间的关系将成为分块状,它们不再 是"A∈B∈C" 这样的关系,而是A∪B∪C = ALL(ALL在这里表示全集). A∩B∩C=¢(¢表示空集)这样的形式.

注:以下代码采用类java代码来表示(注,代码中,类没有列出与其它类之间的关系,但列出了,要讨化的另一个类的与其存在的所有关系代码) 首先看代码:
class A
{
}
class B
{
}

这是第一种关系: A与B不存在关系(称之为空关系)

第二种: (拥有关系)

class A
{
}

B可以有多种形式来实现这一关系,如:
class B extends A
{
}

或者:
class B
{
     A   a;//可先的private ,public pretectec
}

这种关系的特点是B完全拥有A的一个实例.对于上面的继承关系,其实A也是做为已个部分在B中存在. 这种关系的主要特点是如果拥有方消亡,则被拥有方消失.

第三种: 使用关系

class A
{
}
class B
{
     public demo(A a)
     {
        //调用A类的相关实现来完成demo这件事
     }
}

或者
class A
{
}

class B
{
        public A createA()
        {
                return A;
         }
}
或者
class A
{
}

class B
{
        public demo2()
        {
               A a = new A();
              //调用A方法来完成
         }
}


B通过自已的某一方法返回了一个A实例. 这种关系称为使用关系,B使用A实例来完成一项工作.A仅在B的方法体中存在.
以上就是我要介绍的三种关系.接下来,我们证明这三种关系的并集是全关系
上面的关系可以理解成是通过作用域来定义关系的.

A在B中存在且仅存在以下作用域.
1. B中没有任何A的实例,包括B定义的函数调用中,但不包括B调用中其它类对A的实例的相关调用.
2. B中存在A的实例,且是以属性的形式存在的.
3.B中存在A的实列,且仅是以在独立的函数作用域中存在的.
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值