我是否正确实施了这种模式?我的例子的想法是有文档和应用程序(app执行观察者角色)。在开始时,每个文档都应附加观察者。此外,文件可以通过向观察者(申请)发出信号来关闭除他自己以外的所有文件。
要求 - 示例应使用事件模型。
class Application
{
std::vector<Document *> docs;
public:
void add_document(Document *doc)
{
docs.push_back(doc);
}
public slots:
void close_non_active_docs_button_pressed(Document *active_doc)
{
for (auto idoc: this->docs)
{
if (idoc == active_doc)
continue;
idoc->close();
}
}
}
class Document
{
Application *app;
public:
void attach_to_app(Application *app)
{
this->curr_app = app;
app->add_document(this);
}
void close(){...};
public signals:
void close_non_active_docs_button_pressed(Document *active_doc);
...
emit close_non_active_docs_button_pressed(this);
}
///CONNECT(...)