我很難爲一組課程提出好的設計,並希望有人能給我一些最佳實踐指導。我一直保持類和成員函數的通用性,使問題更簡單。不確定如何拿出一個好的設計
從本質上講,我有三個類(讓我們稱之爲A,B,和C)如下:
class A
{
public:
...
int GetX(void) const { return x; };
int GetY(void) const { return y; };
private:
B b; // NOTE: A "has-a" B
int x;
int y;
};
class B
{
public:
...
void SetZ(int value) { z = value };
private:
int z;
C c; // NOTE: B "has-a" C
};
class C
{
public:
...
void DoSomething(int x, int y){ ... };
void DoSomethingElse(int z){ ... };
};
我的問題如下:
- 類A使用它的成員變量「 x「和」y「很多。
- B類在內部使用其成員變量「z」。
- B類需要調用C :: DoSomething(),但C :: DoSomething()需要傳入的類A中X和Y的值作爲參數傳入。
- C :: DoSomethingElse()從另一個類(例如D)調用,但它需要在類B!中調用SetZ()。
正如你所看到的,由於所有的類需要彼此的信息,所以它有點混亂!有什麼設計模式可以使用嗎?任何想法將不勝感激....
您可以說明您的實際問題,而不使用非描述性名稱嗎? – 2010-06-05 14:28:17
爲什麼不把你的DoSomethingElse和DoSomething放在A班? – 2010-06-05 14:33:48
我同意Matti--會更容易建議一個關於這些類應該實現的信息的設計。 – DanK 2010-06-05 14:44:37