История изменений
Исправление alysnix, (текущая версия) :
Антипаттерн - локальные функции. Я объяснил почему.
не об’яснил. чтобы такое обьяснить, надо обьяснить почему инкапсуляция вдруг стала антипаттерном. почему надо вывертывать наружу кишки подсистемы, вытаскивать ненужные сущности и делать зависимость от реализации. это было антипаттенрном всю жизнь. собссно для этого и придумали систему модулей, чтобы красиво скрывать реализации и красиво описывать внешние интерфейсы.
чтобы еще раз уточнить… то есть по вашему, если снаружи TU нужна только одна функция, но ее реализация(TU) содержит 100 функций… я должен все 100 затащить в хидер?.. просто это настолько невероятное утверждение, что хочется уточнить.
А сегрегация интерфейсов реализуется и на уровне хидеров, которые бывают приватными, если ты вдруг не знал.
не знал. нет такого в с/с++. инклудить можно без ограничений любой файл. и если кто-то прицепит ему расширение .my_private_header, это вовсе не значит что такая сущность появилась в языке.
Исходная версия alysnix, :
Антипаттерн - локальные функции. Я объяснил почему.
не об’яснил. чтобы такое обьяснить, надо обьяснить почему инкапсуляция вдруг стала антипаттерном. почему надо вывертывать наружу кишки подсистемы, вытаскивать ненужные сущности и делать зависимость от реализации. это было антипаттенрном всю жизнь. собссно для этого и придумали систему модулей, чтобы красиво скрывать реализации и красиво описывать внешние интерфейсы.
чтобы еще раз уточнить… то есть по вашему, если сенаружи нужна только одна функция, но ее реализация содержит 100 функций… я должен все 100 затащить в хидер?.. просто это настолько невероятное утверждение, что хочется уточнить.
А сегрегация интерфейсов реализуется и на уровне хидеров, которые бывают приватными, если ты вдруг не знал.
не знал. нет такого в с/с++. инклудить можно без ограничений любой файл. и если кто-то прицепит ему расширение .my_private_header, это вовсе не значит что такая сущность появилась в языке.