我在这里有两个困境:我有几个类,让我们说A,B,C和D. A有一个公共接口,和B有一个关系(就像A有一个类型为B的成员变量),并且A的方法之一是返回这个B对象,B只是一个暴露某些方法的类,C是另一个暴露其他方法的类,而D是一个单例对象。 D的公共接口具有对C类对象的引用(指针,如果你更喜欢的话)。C++的一些设计问题
所以,当我想在这一步绘制关系图时,我会在A和B和C之间有一个关系会放在图上,与其他两个没有明显的关系。所以,这是基于头文件(.h),其中包含类A,B,C的声明。我现在对D有点困惑。
在另一端:
- A和B两者的实现(在cpp文件)严重依赖于从C类创建的对象(无,C是不是标准,如表,字符串,队列,但在我的应用程序中另一个有意义的类)。
- A和B的实现都使用D单例与本地C对象。
这里是我的问题:
- 我应该把A,B,C和d之间的类图上什么关系,还不算我已经确定了一个(A HAS-A B) ?我对单身D与C类的关系特别感兴趣。
- 什么是这种情况下普遍接受的方法(当接口没有对象之间的关系时,因为没有关系,但是在实现中它们是大量使用)?
- 如果我按照Java而不是C++有相同的问题会有区别(因为在java中与类有关的所有东西都在一个文件中,所以很容易看出类方法实际使用的是什么,而在C++中你通常只看到头文件)。
非常感谢您的指导。
为什么单身? – 2011-04-14 13:03:27
如果你还没有在头两段中描述你所描述的内容。然后当你有这个问题时,将它添加到你的问题中,这将有助于我们理解这些关系,即使该图不完整。重要的是要先画出你所知道的。 – nathan 2011-04-14 13:05:15
由于尝试将单例装入其他易于管理的设计而引起混淆。无所事事,万事俱备,他们在一张关系图上跺脚,把它缩小成意大利面条。大约99%的时间应该避免使用全局对象;当你确实需要一个,几乎肯定不应该是一个单身人士,除非你有一些非常离奇的要求。 – 2011-04-14 13:10:41