我有81个名为Square的对象位于另一个名为Puzzle的对象的二维数组中。我想这样做,以便当在单个Square对象中触发某个函数时,它会在其对应的Puzzle对象中触发一个函数。你会怎么建议去做呢?它甚至可能吗?
答案 0 :(得分:1)
您要实现的目标可以通过实施“观察者模式”来完成。您的拼图对象将注册Square对象中的事件。 Square对象在状态发生变化时通知Puzzle。以下链接将帮助您了解如何完成所有这些。
http://www.codeproject.com/Articles/328365/Understanding-and-Implementing-Observer-Pattern-in
答案 1 :(得分:0)
在不修改Square
和Puzzle
类的情况下,最简单的方法是在函数中封装Square
方法调用和Puzzle
触发器代码。一个(有点人为的)例子是:
void GoUp(Square& sq, Puzzle& pz) {
sq.GoUp();
pz.NotifySquareGoUp(sq);
}
现在任何需要在方形对象和上调用GoUp()
通知拼图对象的代码只需要调用该函数。
答案 2 :(得分:0)
你的意思是回调功能吗?
你可以存储一个指向方形或引用到Square中的Puzzle,当调用Square的某个函数时,你可以通过指针/引用来做事。