про рефакторинг
От: glmn  
Дата: 05.09.13 16:32
Оценка:
Добрый день,

Есть класс представляющий коллекцию векторов разных типов

class ObjCollection
{
    std::vector<ObjType1> objects1;
    std::vector<ObjType2> objects2;
    ...
    std::vector<ObjTypeN> objectsN
};


Есть много функций работающих с этими коллекциями, которые сводятся к последовательным вызовам некоторых шаблонных
функций над соответствующими векторами:
SomeRetType someFunc(const ObjCollection& coll_A,
                     const ObjCollection& coll_B,
                     ...
                     const ObjCollection& coll_X)
{

    prepareSomeActions<ObjType1>(coll_A.objects1,
                                 coll_B.objects1,
                                     ...
                                 coll_Y.objects1);
    ...
    prepareSomeActions<ObjTypeN>(coll_A.objectsN,
                                 coll_B.objectsN,
                                     ...
                                 coll_Y.objectsN);   

}


Таким образом в каждой из функций приходиться выписывать по одному вызову на каждый тип векторов, что в итоге выливается в большую некрасивую кучу кода.

Подскажите пожалуйста подход помимо вложенных макросов, позволяющий сократить объем кода?

Спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.