Re[2]: Про рефакторинг
От: andyp  
Дата: 16.01.12 14:02
Оценка:
Здравствуйте, night beast, Вы писали:

NB>Здравствуйте, andyp, Вы писали:


A>>Здравствуйте,


A>>Есть некая реализация штуковины System из предметной области. Она включает несколько подсистем:



A>>Получается, что:

A>>1.заголовочные файлы, описывающие подсистемы не включаются в system.h (это хорошо, так как подсистемы — деталь реализации)
A>>2. заголовочный файл системы не включается в заголовочный файл подсистемы (это тоже хорошо, так как интерфейс подсистемы не зависит от системы)

A>>Хотелось бы, сохраняя свойства 1 и 2, как-то убрать методы used_by_subsyst из public секции описания класса System потому что они только замусоривают интерфейс системы,

A>>а по факту используются только при ее реализации. Как этого добиться проще всего не теряя скорости выполнения?

NB>pimpl не подойдет?

NB>
NB>class System {
NB>    struct SystemImpl;
NB>    auto_ptr<SystemImpl> m_impl;
NB>public:
NB>    System();
NB>    ~System();
    
NB>    void some_method(); //интерфейс System 
NB>};
NB>


Может и годится. Намекаете на то, что private методы System станут доступны System::SystemImpl ?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.