次のように、CDataProvider と CDbWrapper の 2 つの C++ クラスがあるとします。
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
、最初にデータをデータベースが理解できる形式に変換して保存します。
私の質問は、convert メソッドがデータ プロバイダーにそのまま存在し、2 つのクラスを分離でき、同じ型を共有する必要がないことに意味があるかどうかです。実際には、データはより複雑であるため、クラス間でヘッダーのデータ型を共有することはクリーンではないことに注意してください。