Patterns_Composite2.pptx
- Количество слайдов: 13
Шаблон проектирования Composite Выполнили: Студентки гр. ПМ-09 -2 Олейник Лина Олейник Катя
Паттерны проектирования представляют собой: Шаблоны проектирования - это многократно используемые решения широко рaспространенных проблем, возникающих при разработке программного обеспечения Паттерн проектирования, используемый при разработке информационных систем, представляет собой: формализованное описание часто встречающейся задачи проектирования, удачное решение данной задачи, а также рекомендации по применению этого решения в различных ситуациях. Шаблон
Структурні паттерни проектування класів/об'єктів Компоновщик (Composite) Проблема Решение Назначение Как обрабатывать группу или композицию структур объектов одновременно? Определить классы для индивидуальных и составных объектов таким образом, чтобы они реализовывали один и тот же интерфейс. Позволяет клиентам единообразно трактовать индивидуальные и составные объекты
Структурні паттерни проектування класів/об'єктів Компоновщик (Composite) Использование: Шаблон Composite позволяет создавать сложные объекты посредством рекурсивного объединения похожих объектов в виде дерева. Кроме того, этот шаблон дает возможность: согласованно управлять объектами дерева, требуя от всех объектов наличия общего интерфейса или суперкласса.
Структурні паттерни проектування класів/об'єктів Компоновщик (Composite) Применимость: Паттерн Composite удобно применять в тех случаях, когда объекты могут быть как примитивными (элементарными), так и составными (сложными). Составной объект может включать в себя коллекции других объектов, образуя сложные древовидные структуры. Пример: директория файловой системы состоит из элементов, каждый их которых также может быть директорией.
Структурні паттерни проектування класів/об'єктів Компоновщик (Composite) UML-диаграмма шаблона
Структурні паттерни проектування класів/об'єктів Компоновщик (Composite) UML-диаграмма пример
Структурні паттерни проектування класів/об'єктів Компоновщик (Composite) аbstract class Abstract. Employee { public abstract void add. Employee(Abstract. Employee ae); // добавить подчиненного public abstract void delete. Employee(Abstract. Employee ae); public abstract double get. Salary. Employee(); public abstract double set. Salary(double s); // установить зарплату public abstract boolean is. Leaf(); // true если это сотрудник без подчиненных public abstract Iterator get. Subordinates(); // получить итератор коллекции подчиненных public Abstract. Employee get. Parent(); // получить ссылку на начальника public abstract String get. Name(); }
Структурні паттерни проектування класів/об'єктів Компоновщик (Composite) class Employee extends Abstract. Employee class Manager extends Abstract. Employee { // имплементация интерфейса //. . public Iterator get. Subordinates() { return null; } public boolean is. Leaf() { return true; } //. . } { Array. List children; // имплементация интерфейса //. . public Iterator get. Subordinates() { return children. iterator(); } public boolean is. Leaf() { return false; } //. . } .
Структурні паттерни проектування класів/об'єктів Компоновщик (Composite) Преимущества и недостатки: + в систему легко добавлять новые объекты (примитивные или составные ); + примитивные и составные объекты обрабатываются одинаковым образом; + паттерн Composite позволяет легко обойти все узлы древовидной структуры; - неудобно осуществить запрет на добавление в составной объект.
Структурні паттерни проектування класів/об'єктів Компоновщик (Composite) Шаблоны проектирования, связанные с шаблоном Composite Chain of responsibility. Шаблон Chain of Responsibility может использоваться вместе с шаблоном Composite посредством добавления звеньев «потомок - родитель» таким образом, что потомки могут получать информацию от предка, не зная, от какого предка она получена. Visitor. Можно использовать шаблон Visitor для инкапсуляции в одном классе операций , которые в противном случае были бы распределены по множеству
Структурні паттерни проектування класів/об'єктів Компоновщик (Composite) Вопросы для проверки: Шаблоны (паттерны) проектирования – это: А) программное обеспечение, облегчающее разработку и объединение разных компонентов большого программного проекта. Б) функции высшего порядка, которая применяет заданную функцию к каждому элементу коллекции, возвращая результат. В) многократно используемые решения широко распространенных проблем, возникающих при разработке программного обеспечения Паттерн Composite (компоновщик) удобно применять в случаях: А) когда поведение или представление компонента изменяется в процессе его использования; Б) когда объекты могут быть как примитивными (элементарными), так и составными (сложными), составной объект может включать в себя коллекции других объектов, образуя сложные древовидные структуры; В) когда должен быть ровно один экземпляр некоторого класса, легкодоступный всем клиентам. Шаблон Composite позволяет: А) По типу клиента (или по типу обрабатываемых данных) выбрать подходящий алгоритм, который следует применить. Б) создавать сложные объекты посредством рекурсивного объединения похожих объектов в виде дерева В) Создать класс и определить статический метод класса, возвращающий этот единственный объект.
Структурні паттерни проектування класів/об'єктів Компоновщик (Composite) Вопросы для проверки: Назначение паттерна Composite (компоновщик): А) гарантирует, что у класса есть только один экземпляр, и предоставляет к нему глобальную точку доступа; Б) компонует объекты в древовидные структуры для представления иерархий часть-целое, позволяет клиентам единообразно трактовать индивидуальные и составные объекты; В) предоставляет способ последовательного доступа ко всем элементам составного объекта, не раскрывая его внутреннего представления; Г) отделить абстракцию от ее реализации так, чтобы то и другое можно было изменять независимо. Шаблоны проектирования, связанные с шаблоном composite: А) Singleton Б) Chain of responsibility В) Factory Г) Mediator Д) Bridge Е) Visitor
Patterns_Composite2.pptx