新手问一个面向对象的编程有关问题

新手问一个面向对象的编程问题
我刚刚学习面向对象程序设计,用的是C++。
问个问题:
目前想编写一个客户端软件,主要功能有:
1. 从服务器端接受数据(数据很多很复杂)
2. 根据接收到的数据进行计算
3. 将计算完成的结果送回服务器
若要从面向对象的角度应该怎样设计才合适呢?

我的初步想法是这样的:
以下是简化的代码:
class Client {
public:
  void ReceiveData();
  void Calculate();
  void SendData();
  void Run();
private:
  ...
}

void main() {
  Client c;
  c.Run();
}

总是感觉这样设计不太好,因为还是没有体现出面向对象的思想,还是停留在面向过程,只不过把函数封装成类而已。
请问各位高手,这个类应该怎样设计呢?thx!

再补充一点,程序是多线程的,比如有多个计算线程并行计算,还有通信线程

------解决方案--------------------
// 请求
class IQuest
{

};

// 返回结果
class IResult
{

};

// 执行者
class IExecuor
{
virtual IResult DoSomething();
};

// 类工厂
class IExecuorFact
{
IExecuor Create(IQuest);
};
------解决方案--------------------
每个模块功能抽象成一个类

然后分析类之间的关系

实现公共交互接口 

这是我的见解
------解决方案--------------------
去问这个人