1. PHP / Говнокод #4925

    +163

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    class C
    {
    ...
    static function ModulesList()
    {
                    global $config;
                    return $config;
    }
    ...
    }

    ООП в действии

    Запостил: elw00d, 15 Декабря 2010

    Комментарии (14) RSS

    • class C
      {
      ...
      static function M() {
      ...
      }
      ...
      }
      Ответить
    • Вот если стереть class C, то абсурдность кода действительно очевидна: возвращать статической функцией копию (или ссылку) глобальной переменной...

      А с нотацией класса это больше похоже на попытку "сокрытия реализации". Возможно старый код (не ООП) поддерживает глобальную переменную, а новый код (ООП) получает статический интерфейс, который передаёт копию переменной, но скрывает от клиента само её существование (клиенту предписано использовать статический метод).

      Если старый код (не ООП) в какой-то момент просто отпадёт (всё не поддерживают), то достаточно будет объявить переменную $config закрытым членом класса и переписать две-три строчки, а новый код будет продолжать обращаться к ней через статический интерфейс.

      Без описания конкретной задачи программы подобная запись подразумевает трактовку...
      Ответить
      • дык как раз "старого не ООП" кода на момент написания шедевра уже не было и все использование класса было реализовано позже
        Ответить
        • Но мы, читатели кода, об этом не знаем.
          Надо аккуратно пояснить в комментарии, что программа уже лишилась не ООП части, а люди оставили сопрягающий код. Всем не только будет ясно, что он плох, но даже причина его появления!
          Ответить
    • показать все, что скрытоКод, шедевр всем поставил по минусу
      Ответить

    Добавить комментарий