Читайте также:
|
|
Операции над объектами: 1)Инкапсуляция:
· Запрос – единственный способ заставить объект выполнить операцию
· Операция – единственный способ изменить внутреннее состояние объекта
2)Операция описывается своей сигнатурой:
· Имя операции
· Объекты-параметры
· Возвращаемое значение
Объекты и типы: 1)Тип объекта:
· Интерфейс – множество сигнатур операций объекта
· Тип – имя конкретного интерфейса
· Один объект соответствует многим типам, один тип имеют многие объекты
2)Динамическое связывание – ассоциация запроса с объектом и одной из его операций во время выполнения
3)Полиморфизм – подмена во время выполнения программы одного объекта с требуемым интерфейсом другим объектом с таким же интерфейсом
Классы и объекты: 1)Реализация объекта определяется его классом
2)Класс – внутренние данные объекта + тип (представление) + реализация операций
3)Объекты создаются с помощью инстанцирования класса: объект – экземпляр класса
4)Новый класс определяется через наследование: a)Родительский класс b)Подкласс
Абстрактный класс:делегирование реализации,нет экземпляров
Конкретный класс
Подмешанный класс
Множественное наследование
Наследование и интерфейсы:
1)Наследование позволяет определять семейства классов с идентичными интерфейсами (обычно за счет наследования от абстрактных классов)
2)Два преимущества манипулирования объектами строго через интерфейс абстрактного класса:
· Не нужно иметь информации о конкретных типах используемых объектов (если все они имеют ожидаемый интерфейс)
· Клиенту необязательно «знать» о классах, с помощью которых реализованы объекты. Клиенту известно только об абстрактном классе (или классах), определяющих интерфейс
Принципы написания повторно-используемого кода:
1)Программируйте в соответствии с интерфейсом, а не реализацией.
2)Не объявляйте переменные как экземпляры конкретных классов. Вместо этого пpидерживайтесь интерфейса, определенного абстрактным классом.
3)Создавая в системе объекты конкретных классов, используйте порождающие паттерны проектирования.
Механизмы повторного использования:
Наследование – определяется статически и нарушает инкапсуляцию
Композиция – определяется динамически
Предпочитайте композицию наследованию класса
Делегирование упрощает композицию поведений во время выполнения.Программа сложнее для понимания.
Причины перепроектирования:
1)При создании объекта явно указывается класс
2)Зависимость от конкретных операций
3)Зависимость от аппаратной и программной платформ
4)Зависимость от представления или реализации объекта
5)Зависимость от алгоритмов
6)Сильная связанность
7)Расширение функциональности за счет порождения подклассов
Фреймворки:
Фреймворк (Framework, каркас) – это набор взаимодействующих классов, составляющих повторно используемое проектное решение для конкретного класса программ.
Диктует определенную структуру приложения или модуля. Определяет общую структуру, ее разделение на классы и объекты, основные функции тех и других, методы взаимодействия потоков и классов, потоки управления.
Паттерны проектирования:
1)Паттерн проектирования (Design Pattern, образец проектирования, шаблон проектирования) – описание взаимодействия объектов и классов, адаптированных для решения общей задачи проектирования в конкретном контексте
2) Паттерн проектирования именует, абстрагирует и идентифицирует ключевые аспекты структуры общего решения, которые и позволяют применить его для создания повторно используемого проектного решения.
Фреймворки vs Паттерны:
1. Паттерны проектирования более абстрактны, чем фреймворки
2. Как архитектурные элементы паттерны проектирования мельче, чем фреймворки
3. Паттерны проектирования менее специализированны, чем фреймворки
Порождающие паттерны:
Abstract Factory – Абстрактная фабрика
Builder – Строитель
Factory Method – Фабричный метод
Prototype – Прототип
Singleton – Одиночка
Singleton: Название и классификация: Одиночка – паттерн, порождающий объекты.
Назначение: Гарантирует, что у класса есть только один экземпляр, и предоставляет к нему глобальную точку доступа.
Применимость: Должен быть ровно один экземпляр некоторого класса, легко доступный всем клиентам. Единственный экземпляр должен расширяться путем порождения подклассов, и клиентам нужно иметь возможность работать с расширенным экземпляром без модификации своего кода.
Singleton: структура Участники: Singleton – одиночка, Определяет операцию Instance, которая позволяет клиентам получать доступ к единственному экземпляру.
Factory Method: Название и классификация: Фабричный метод – паттерн, порождающий объекты.
Назначение: Определяет интерфейс для создания объекта, но оставляет подклассам решение о том, какой класс инстанцировать. Фабричный метод позволяет классу делегировать инстанцирование в подклассы.Известен также под именем
Virtual Constructor
Factory Method: применимость!!!
Используйте паттерн фабричный метод, когда:
1)Классу заранее неизвестно, объекты каких классов ему нужно создавать.
2)Класс спроектирован так, чтобы объекты, которые он создает, специфицировались подклассами.
2)Класс делегирует свои обязанности одному из нескольких вспомогательных подклассов, и вы планируете локализовать знание о том, какой класс принимает эти обязанности на себя.
Factory Method: структура
Factory Method: особенности
Две основных разновидности: класс Сгeator – абстрактный!!!
Creator – конкретный класс, в котором по умолчанию есть реализация фабричного метода.
Дата добавления: 2015-09-11; просмотров: 83 | Поможем написать вашу работу | Нарушение авторских прав |