progr. |
decorator pattern (декоратор позволяет сформировать сложное поведение, составляя объекты во время выполнения. Например, в автоматизированной системе управления технологическими процессами производства может быть класс, называемый ToolController (контроллер инструментов) с такими методами, как raise (), lower (), step (), on () и off () для поднятия, опускания, пошагового перемещения, включения и выключения инструмента соответственно. Шаблон декоратора идеально подходит для решения подобного рода задач. С его помощью сначала создается абстрактный класс, определяющий ряд операций, требующих поддержки, а затем подкласс, наследующий от этого абстрактного класса, воспринимающий экземпляр класса в своём конструкторе и предоставляющий тело для каждого из методов, поддерживающих упомянутые операции. См. Working Effectively with Legacy Code by Michael C. Feathers (2004) ssn) |