• Спонсоры

  • Рубрики

  • Архивы

  • Популярное



  • Моя рассылка

  • Что за кнопка?

  • Последние записи

  • Статистика

    Участник Blograte.ru
  • Мой Твиттер

      twitter.com/inovicenet


  • avatar

    Сегодня мы рассмотрим технику рефакторинга, противоположную встраиванию класса. Рассматриваемая техника нужна, чтобы поделить работу, которую выполняет один класс, между двумя классами. Для чего это делать? Ну вообще-то класс должен представлять собой четкую абстракцию, которая выполняет лишь определенные операции и ничего более. Т.е. ничего лишнего в классе быть не должно. Со временем, когда добавляются новые функции в класс, он растет. И он может разрастить до таких размеров, что станет слишком сложным для понимания. В этом случае и приходит на помощь техника выделения класса.

    продолжение статьи

    avatar

    По мере разработки любой сложной системы выясняется, что необходимо переместить то или иное поле или метод в новый класс. Любое правильное проектное решение через некоторое время может оказаться неправильным.

    продолжение статьи

    avatar

    В прошлой статье из цикла рефакторинга про встраивание класса я писал, что расскажу о таких приемах, как «Перемещение метода» и «Перемещение поля». Сегодня время пришло написать об одном из них - о первом.

    продолжение статьи

    avatar

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

    продолжение статьи

    avatar

    Бывают такие ситуации, когда несколько методов выполняют одни и те же действия, но с разными значениями внутри. Например, один метод увеличивает значение стоимости товара на 10, а другой - на 30 единиц. И тут конечно лучше было бы создать просто один метод, но для разных значений, который принимал бы параметр, сколько прибавлять единиц к стоимости - 10 или 30, а может и 50 и т.д. Отсюда и название приема - параметризация метода.

    продолжение статьи

    avatar

    Некоторые (особенно начинающие или неопытные) разработчики хранят в массивах разнородную информацию. Например:

    продолжение статьи

    avatar

    Иногда в исходном коде выражения бывают настолько сложными, что если даже и мы их написали, то по прошествии какого-то времени не можем понять, что мы имели в виду в том или ином участке кода.

    Например, рассмотрим следующее выражение (правда, оно не настолько сложное, но выражения посложнее я покажу далее):

    if ((strpos(strtoupper($platform), "MAC") !== false) &&
        (strpos(strtoupper($browser),  "IE")  !== false) &&
         wasInitialized() && $resize > 0 ) {
            // что-то делаем ...
    }

    продолжение статьи


    Страница 1 из 3123


    © 2008 - 2017 i-novice.net | Все права защищены.