Доброго времени суток.
Представим себе ситуацию, что есть у нас 4 класса: Parser, Info1, Info2, InfoHolder.
Парсер ,соотвесвенно, парсит какие-то данные и собирает их в классы Info1, Info2, которые являюся членами класса InfoHolder. Схематично код выглядит так:
class InfoHolder {
public:
....
void getSomeInterestingInfo(...);
void addDataToInfo1(...);
void addDataToInfo2(...);
private:
Info1 m_info1;
Info2 m_info2;
};
Собственно, Парсер каким-то образом заполняет классы Info1, Info2...
Код используется приблизиельно так:
Parser parser;
InfoHolder holder;
parser.start(someFilename, &holder);
holder.getSomeData();
Что мне в этом всем не нравится? То, что далее используя экзмемляр holder я могу вызвать методы, отвечающие за заполнение классов Info1, Info2, что не есть хорошо!!!
Как лучше в этой ситуации сделать? Может вообще есть какой-то хороший шаблон программирования?
Думал методы по добавлению данных в Info1 и Info2 сделать тоже приватными, но тогда надо будет делать другом класса класс Парсер, а фрнеды - это не очень есть хорошо....=(



Reply With Quote
Thanks