新手问一个面向对象的编程有关问题
新手问一个面向对象的编程问题
我刚刚学习面向对象程序设计,用的是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);
};
------解决方案--------------------
每个模块功能抽象成一个类
然后分析类之间的关系
实现公共交互接口
这是我的见解
------解决方案--------------------
去问这个人
我刚刚学习面向对象程序设计,用的是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);
};
------解决方案--------------------
每个模块功能抽象成一个类
然后分析类之间的关系
实现公共交互接口
这是我的见解
------解决方案--------------------
去问这个人