假设有两个 C++ 类 CDataProvider 和 CDbWrapper 如下:
Class CDataProvider {
public:
void setData(MyDataType);
void getData(MyDataType&);
// ... snip ...
private:
MyDataType d; // cached data
CDbWrapper db;
convertMyTypeToMyDbType(MyDataType, MyDbDataType&);
convertMyDbTypeToMyType(MyDbDataType, MyDataType&);
};
Class CDbWrapper {
public:
bool getFromDb(MyDbDataType&);
bool setToDb(MyDbDataType);
// ... snip ...
};
在CDataProvider::setData
我们将首先将数据转换为数据库可以理解的格式并存储它。
我的问题是,在数据提供者中存在这样的转换方法是否有意义,以便能够解耦两个类并且不必共享相同的类型。请注意,实际上,数据更复杂,因此在不干净的类之间共享标头中的数据类型。