- •Понятие ооп.
- •Обработка ошибок
- •Создание новых классов.
- •Шаблоны проектирования
- •Состояние и стратегия
- •Фабричный метод. Абстрактная фабрика.
- •Реестр. Строитель.
- •Одиночка. Загрузка по требованию.
- •Команда. Шаблонный метод.
- •Фасад. Компоновщик.
- •Рефакторинг. Основные идеи.
- •Модульное тестирование.
- •Mvc. Наблюдатель.
Команда. Шаблонный метод.
Команда — шаблон проектирования, используемый при объектно-ориентированном программировании, представляющий действие. Объект команды заключает в себе само действие и его параметры.
Создание структуры, в которой класс-отправитель и класс-получатель не зависят друг от друга напрямую. Организация обратного вызова к классу, который включает в себя класс-отправитель.
Паттерн поведения объектов,известен так же под именем Action(действие).
Обеспечивает обработку команды в виде объекта, что позволяет сохранять её, передавать в качестве параметра методам, а также возвращать её в виде результата, как и любой другой объект.
Например, библиотека печати может иметь класс PrintJob. Для его использования можно создать объект PrintJob, установить необходимые параметры, и вызвать метод, непосредственно отсылающий задание на печать.
Шаблонный метод — паттерн поведения классов, шаблон проектирования , определяющий основу алгоритма и позволяющий наследникам переопределять некоторые шаги алгоритма, не изменяя его структуру в целом.
-Однократное использование инвариантной части алгоритма, с оставлением изменяющейся части на усмотрение наследникам.
-Локализация и вычленение общего для нескольких классов кода для избегания дублирования.
-Разрешение расширения кода наследниками только в определенных местах.
Фасад. Компоновщик.
Фасад - шаблон проектирования, позволяющий скрыть сложность системы путем сведения всех возможных внешних вызовов к одному объекту, делегирующему их соответствующим объектам системы. Применяется для установки некоторого рода политики по отношению к другой группе объектов. Если политика должна быть яркой и заметной, следует воспользоваться услугами шаблона Фасад. Если же необходимо обеспечить скрытность и аккуратность (прозрачность), более подходящим выбором является шаблон Заместитель (Proxy).
Компоновщик — шаблон проектирования, относится к структурным паттернам, объединяет объекты в древовидную структуру для представления иерархии от частного к целому. Компоновщик позволяет клиентам обращаться к отдельным объектам и к группам объектов одинаково.
Цель: Паттерн определяет иерархию классов, которые одновременно могут состоять из примитивных и сложных объектов, упрощает архитектуру клиента, делает процесс добавления новых видов объекта более простым.
Рефакторинг. Основные идеи.
Рефакторинг — процесс изменения внутренней структуры программы, не затрагивающий её внешнего поведения и имеющий целью облегчить понимание её работы[1]. В основе рефакторинга лежит последовательность небольших эквивалентных (то есть сохраняющих поведение) преобразований. Поскольку каждое преобразование маленькое, программисту легче проследить за его правильностью, и в то же время вся последовательность может привести к существенной перестройке программы и улучшению её согласованности и четкости.
Цель рефакторинга — сделать код программы легче для понимания; без этого рефакторинг нельзя считать успешным.
Рефакторинг следует отличать от оптимизации производительности. Как и рефакторинг, оптимизация обычно не изменяет поведение программы, а только ускоряет её работу. Но оптимизация часто затрудняет понимание кода, что противоположно рефакторингу.
Рефакторинг нужно применять постоянно при разработке кода. Основными стимулами его проведения являются следующие задачи:
-необходимо добавить новую функцию, которая недостаточно укладывается в принятое архитектурное решение;
-необходимо исправить ошибку, причины возникновения которой сразу не ясны;
-преодоление трудностей в командной разработке, которые обусловлены сложной логикой программы.
Во многом при рефакторинге лучше полагаться на интуицию, основанную на опыте. Но можно выделить наиболее очевидные причины, когда код нужно подвергнуть рефакторингу:
-дублирование кода;
-длинный метод;
-большой класс;
-длинный список параметров;
-«завистливые» функции — это метод, который чрезмерно обращается к данным другого объекта;
-избыточные временные переменные;
-классы данных;
-несгруппированные данные.