在对象之间设置和获取变量而不引用它们

时间:2014-06-23 08:05:35

标签: c++ oop

我有很多彼此不了解的对象,但我需要在它们之间交换数据(这些对象的setget个变量)。
我怎么能这样做?
我调查了Observer design pattern,但似乎只有当这些类之间的观察数据相似时才能使用该模式。

换句话说,这可以按如下方式完成:

void ObjectB::setVarA(ObjectA &objectA) {
    objectA.setVar(15);
}

但没有通过&object

2 个答案:

答案 0 :(得分:1)

观察者设计模式 您正在寻找什么。您可以使对象可观察,并拥有一个可以控制它们的观察者。您可以为不同的对象设置不同的观察者:

  

似乎只有当这些类之间的观察数据相似时才能使用该模式

是一种误解。查看thisthis

您可以根据不同的行动通知观察者。例如,当您的obj1的“名称”属性发生更改时,您可以通知观察者以及当您的obj2的“日期”属性发生更改时,您可以再次通知观察者。

答案 1 :(得分:0)

如果对象彼此不了解并且您希望保持这种方式,那么您可以创建知道这两个对象的函数,如下所示:

void SetObjectBVarA(const ObjectA & objectA, ObjectB & objectB) { objectB.setVarA(objectA.getVarA()); }