LINUX.ORG.RU

История изменений

Исправление alysnix, (текущая версия) :

Антипаттерн - локальные функции. Я объяснил почему.

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

чтобы еще раз уточнить… то есть по вашему, если снаружи TU нужна только одна функция, но ее реализация(TU) содержит 100 функций… я должен все 100 затащить в хидер?.. просто это настолько невероятное утверждение, что хочется уточнить.

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

не знал. нет такого в с/с++. инклудить можно без ограничений любой файл. и если кто-то прицепит ему расширение .my_private_header, это вовсе не значит что такая сущность появилась в языке.

Исходная версия alysnix, :

Антипаттерн - локальные функции. Я объяснил почему.

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

чтобы еще раз уточнить… то есть по вашему, если сенаружи нужна только одна функция, но ее реализация содержит 100 функций… я должен все 100 затащить в хидер?.. просто это настолько невероятное утверждение, что хочется уточнить.

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

не знал. нет такого в с/с++. инклудить можно без ограничений любой файл. и если кто-то прицепит ему расширение .my_private_header, это вовсе не значит что такая сущность появилась в языке.