I have a data class which encapsulates relevant data items in it. Those data items are set and get by users one by one when needed.

My confusion about the design has to do with which object should be responsible for handling the update of multiple properties of that data object. Sometimes an update operation will be performed which affects many properties at once. 

So, which class should have the `update()` method?. Is it the data class itself or another manager class ? The `update()` method requires data exchange with many different objects, so I don't want to make it a member of the data class because I believe it should know nothing about the other objects required for update. I want the data class to be only a data-structure. Am I thinking wrong? What would be the right approach?

**My code:**

```
class RefData
{
    Matrix mX;
    Vector mV;

    int mA;
    bool mB;

    getX();

    setB();

    update(); // which affects almost any member attributes in the class, but requires many relations with many different classes, which makes this class dependant on them.

}

```

or,

```
class RefDataUpdater
{
   update(RefData*); // something like this ?
}

```