当前位置: 代码迷 >> Rational >> 这两个种之间应该是什么关系
  详细解决方案

这两个种之间应该是什么关系

热度:8521   发布时间:2013-02-26 00:00:00.0
这两个类之间应该是什么关系
如下:
class A 
{
public:
A();
~A();
PrintA();
};
class B 
{
public:
B();
~B();
PrintB();
A*a;
};

class C
{
public:
C();
~C();
        B b;
PrintC()
        {  a = new A();
           b.a->PrintA();
         };
}
请问C与A之间是什么关系?如果说是依赖,可C根本根本不用引用B的头文件。如果说是关联,A也不是C的成员变量。如果说没关系,可在C中明明可以看到A,并且C知道A的内部情况。
这种设计是不太好。
但请问C与A之间在UML图中到底应该如何表示,是什么关系。多谢各位

------解决方案--------------------------------------------------------
依赖分三种:
1.全局依赖:比如楼主问题中,A作为B的成员变量,则B全局依赖于A,同时C全局依赖于B。
2.局部依赖:比如楼主问题中,A作为C中PrintC方法内部局部引用的局部变量,则C局部依赖与A。
3.参数依赖:楼主问题中没有此种依赖。如果C中PrintC方法全部定义为
         PrintC(A a) 
        {
           b.setA(a);
           b.a->PrintA(); 
        }; 
  也就是所,A是C中PrintC方法的参数类型,在C可以说是参数依赖于A。