我环顾四周但找不到我要找的东西(不确定要使用哪些关键字)。我自己正在做一个C ++项目。该项目包含window
个,page
和field
个。 window
可以包含一个或多个page
,page
可以包含一个或多个field
。 window
,page
和field
之间共享的内容是InputManager
,它们负责用户的所有IO。 InputManager
可以作用于窗口,页面和字段(例如,某些输入直接作用于page
,而某些输入作用于field
)。此外,field
可以生成status
条消息,以便在包含window
的位置显示。
现在我有以下结构,但它似乎不是最佳的。有很多指针传递下来,我想知道是否有更好的方法。
class InputManager
{
//do stuff to return input
}
class StatusManager
{
//do stuff to display statuses
}
class Field
{
friend class Page;
protected:
InputManager *input_manager;
StatusManager *status_manager;
/*
other methods that do stuff that
may recieve from input_manager and
send statuses through the status_manager
*/
}
class Page
{
friend class Window;
protected:
vector<Field* > fields;
InputManager *input_manager;
StatusManager *status_manager;
public:
AddField(Field *field)
{
field->input_manager = this->input_manager;
field->status_manager = this->status_manager;
}
}
class Window
{
protected:
vector<Page *> pages;
InputManager *input_manager;
StatusManager *status_manager;
public:
Window()
{
input_manager = new InputManager();
status_manager = new StatusManager();
}
AddPage(Page *page)
{
page->input_manager = this->input_manager;
page->status_manager = this->status_manager;
}
}
如果我想了解有关这些类型问题的更多信息,我应该考虑哪些关键字或字段?