Patterns_Visitor.pptx
- Количество слайдов: 12
Шаблон проектирования Visitor Выполнили: Студентки гр. ПМ-09 -2 Олейник Лина Олейник Катя
Паттерни проектування поведінки класів/об'єктів Відвідувач (Visitor) Назначение Описывает операцию, выполняемую с каждым объектом из некоторой структуры. Паттерн посетитель позволяет определить новую операцию, не изменяя классы этих объектов.
Паттерни проектування поведінки класів/об'єктів Відвідувач (Visitor) • Имеются различные операции, которые должны выполняться для некоторой структуры объектов. Мотивы • Структуру образуют объекты, принадлежащие разным классам. • Типы объектов структуры меняются не часто
Паттерни проектування поведінки класів/об'єктів Відвідувач (Visitor) public interface Visitor{ public void do. Operation (Shape obj); } public class Shape { public void accept(Visitor V){ V. do. Operation (this); } String colour; } public class Circle extends Shape{} public class Triangle extends Shape{}
Паттерни проектування поведінки класів/об'єктів Відвідувач (Visitor) public class Change. Colour. Visitor implements Visitor{ public void do. Operation(circle c) { c. colour = “yellow”; } public void do. Operation(triangle t) {t. colour = “orange”; } } public class Demo. Visitor{ public static void Main() { circle c 1 = new circle (); triangle t 1 = new triangle(); change. Colour. Visitor ch. Colour = new Change. Colour. Visitor(); c 1. accept (ch. Colour); t 1. accept (ch. Colour); } }
Паттерни проектування поведінки класів/об'єктів Відвідувач (Visitor)
Паттерни проектування поведінки класів/об'єктів Відвідувач (Visitor) public class Change. Colour. Visitor implements Visitor{ public void do. Operation(Circle c) { c. colour = “yellow”; } public void do. Operation(Triangle t) {t. colour = “orange”; } } public class Change. Colour. Visitor implements Visitor{ public void do. Operation (Object obj) { if ( obj instanceof Circle) {obj. colour = “yellow”; } if ( obj instanceof Triangle) {obj. colour = “orange”; } } }
Паттерни проектування поведінки класів/об'єктів Відвідувач (Visitor) Шаблон Visitor представляет собой альтернативный способ реализации похожих операций и позволяет избежать усложнения классов объектов структуры, помещая всю необходимую логику в отдельный класс. Этот шаблон допускает изменение логики путем использования различных классов.
Паттерни проектування поведінки класів/об'єктів Відвідувач (Visitor) Преимущества Упрощается добавление новых операций, объединяет родственные операции в классе "Посетитель". Недостатки Затруднено добавление новых классов "Конкретный. Элемент", поскольку требуется объявление новой абстрактной операции в классе "Посетитель".
Паттерни проектування поведінки класів/об'єктів Відвідувач (Visitor) Шаблоны проектирования, связанные с шаблоном Visitor Компоновщик. Посетители могут использоваться для выполнения операции над всеми объектами структуры, определенной с помощью паттерна компоновщик. Интерпретатор. Посетитель может использоваться для выполнения интерпретации.
Паттерни проектування поведінки класів/об'єктів Відвідувач (Visitor) Паттерн Visitor удобно применять в случаях: а) когда необходимо обеспечить одновременное выполнение разных фрагментов кода; б) когда поведение или представление компонента изменяется в процессе его использования; в) когда имеются различные операции, которые должны выполняться для некоторой структуры объектов, и структуру образуют объекты, принадлежащие разным классам. Назначение паттерна Visitor: a) позволяет определить новую операцию, не изменяя классы этих объектов. б) предоставляет способ последовательного доступа ко всем элементам составного объекта, не раскрывая его внутреннего представления; в) отделить абстракцию от ее реализации так, чтобы то и другое можно было изменять независимо.
Паттерни проектування поведінки класів/об'єктів Відвідувач (Visitor) Шаблоны, связанные с шаблоном Visitor: А) Singleton Б) Компоновщик В) Factory Г) Mediator Д) Bridge Е) Интерпретатор Шаблон Visitor позволяет: А) По типу клиента (или по типу обрабатываемых данных) выбрать подходящий алгоритм, который следует применить. Б) создавать сложные объекты посредством рекурсивного объединения похожих объектов в виде дерева В) Создать класс и определить статический метод класса, возвращающий этот единственный объект.
Patterns_Visitor.pptx