| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Идиома Pimpl |
| Автор: np9mi7 20.9.2005, 07:42 | ||||||
| Добрый день. При чтении одной, из недавно вышедших в печать, книг (C++ Coding Standards: 101 Rules, Guidelines and Best Practices (C++ In-Depth)), натулкнулся на совет:
После чего приводиться пример:
У меня возникает очевидный вопрос: А что внурти Impl? Получаю ответ из следующих строк:
После чтения всей статьи целиком у меня так и не отложилось в голове для чего нужна данная идиома? Когда её использовать? Когда её использовать не нужно? Может кто поможет в поисках ответов на данные вопросы? Заранее благодарен за ответы. |
| Автор: Mayk 20.9.2005, 08:08 | ||||||
Когда ты не хочешь, чтоб пользователи мог видеть внутреннюю структуру. Например при написании коммерческой либы. Или, например, когда реализация может отличаться для разных ситуаций(например для разных осей). Так ты можешь сделать
А WindowClassImpl имплементить в файлах windowclassimpl_win32.cpp и windowsclassimpl_x11.cpp. А при сборке указывать явно что нужно собирать(windowclassimpl_win32.cpp или windowsclassimpl_x11.cpp) и линковать.
Когда не хочешь, тогда и не используй. |
| Автор: Daevaorn 20.9.2005, 08:32 |
| Эта идиома один из способов уменьшить время компиляции проекта при какком-либо изменении реализации |
| Автор: Orlan 21.9.2005, 09:55 |
| Это фактически патерн http://en.wikipedia.org/wiki/Bridge_pattern, который служит для разделения интерфейса от реализации что бы первое и второе можно было менять независимо. |