首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > Rational >

这两个类之间应该是什么关系解决思路

2012-02-06 
这两个类之间应该是什么关系如下:class A{public:A()~A()PrintA()}class B{public:B()~B()PrintB()

这两个类之间应该是什么关系
如下:
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。

热点排行