我有很多彼此不了解的对象,但我需要在它们之间交换数据(这些对象的set
和get
个变量)。
我怎么能这样做?
我调查了Observer design pattern
,但似乎只有当这些类之间的观察数据相似时才能使用该模式。
换句话说,这可以按如下方式完成:
void ObjectB::setVarA(ObjectA &objectA) {
objectA.setVar(15);
}
但没有通过&object
。
答案 0 :(得分:1)
观察者设计模式 您正在寻找什么。您可以使对象可观察,并拥有一个可以控制它们的观察者。您可以为不同的对象设置不同的观察者:
似乎只有当这些类之间的观察数据相似时才能使用该模式
您可以根据不同的行动通知观察者。例如,当您的obj1的“名称”属性发生更改时,您可以通知观察者以及当您的obj2的“日期”属性发生更改时,您可以再次通知观察者。
答案 1 :(得分:0)
如果对象彼此不了解并且您希望保持这种方式,那么您可以创建知道这两个对象的函数,如下所示:
void SetObjectBVarA(const ObjectA & objectA, ObjectB & objectB)
{
objectB.setVarA(objectA.getVarA());
}