Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Лекция №5

Читайте также:
  1. Взаимодействие с коллекциями
  2. Дәріс (лекция), практикалық және зертханалық сабақтар жоспары
  3. Кодирующие (Комбинация, Смежность) расстройства / Декодирующие (Селекция, Сходство) расстройства
  4. Коллекция археологии
  5. Коллекция жертв Дамера
  6. Криминалистическая габитология, теоретические основы и практическое значение (лекция).
  7. ЛЕКЦИЯ 1. Проблема правопонимания в истории человеческой мысли
  8. Лекция 10
  9. Лекция 11. Фиксация результатов осмотра места происшествия
  10. Лекция 13

Операции над объектами: 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 | Поможем написать вашу работу | Нарушение авторских прав

Лекция №1 | Локальные переменные | Легальные значения | Объявление, инициализация, заполнение | Встроенный в язык механизм проверки и обработки | Особый синтаксис описания обработчиков исключений | Виды наследования | Super(...) | Виды наследования | Лекция №4 |


lektsii.net - Лекции.Нет - 2014-2025 год. (0.01 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав