我正在用C++ 11編寫我的程序。我有一個名爲MyExperiment的主類。在這個類中還有另一個類,ReadFromFile,它從文件中讀出一些關於設置的信息。然後,我想使用這些數據來初始化一些其他對象,這些對象是類別爲MyExperiment類的成員。這是應該的樣子:哪種設計模式適合這種情況?
class MyExperiment
{
FirstObject *firstObject;
SecondObject *secondObject;
public:
MyExperiment()
{
ReadFromAFile readfromafile;
readfromafile.read();
firstObject = new FirstObject(/*some data from the readfromafile object */);
secondObject = new SecondObject(/*some data from the readfromafile object */);
}
}
每個對象(firstObject和secondObject)類包含的一些信息,可以(也應該)被從文件和其他一些變量的讀出和功能。我真的不要想要爲每個對象類型有兩個類:一個用於可以從文件中讀取的數據,另一個用於其餘的。
所以,我想使用ReadFromFile類從文件讀取一些信息,然後以某種方式將信息傳遞給我的對象的構造者。我的問題是:什麼是正確的做法?
現在我有一些結構描述我從ReadFromFile類的文件中讀取的數據。每個結構都指向一個對象。我也有干將對其調用在MyExperiment類的構造函數:
class MyExperiment
{
FirstObject *firstObject;
SecondObject *secondObject;
public:
MyExperiment()
{
ReadFromAFile readfromafile;
readfromafile.read();
firstObject = new FirstObject(readfromafile.getFirstStruct());
secondObject = new SecondObject(readfromafile.getSecondStruct());
}
}
我不認爲這個解決方案是優雅和智能。我有一個描述我的firstObject的結構,然後使用它作爲這個對象的構造函數。
我不知道如何以更好的方式做到這一點,所以我會很感激任何評論。
我不想讀取我的myExperiment類中的文件,因爲它已經很複雜,所以我需要一些enacpsulation。
是否有解決此問題的方法?
很難說不知道更多,但我會考慮消除ReadFromFile,並將該功能直接放入第一個和第二個對象。只是我的兩分錢... –