🗊Презентация Аспектно - ориентированное программирование

Нажмите для полного просмотра!
Аспектно - ориентированное программирование, слайд №1Аспектно - ориентированное программирование, слайд №2Аспектно - ориентированное программирование, слайд №3Аспектно - ориентированное программирование, слайд №4Аспектно - ориентированное программирование, слайд №5Аспектно - ориентированное программирование, слайд №6Аспектно - ориентированное программирование, слайд №7Аспектно - ориентированное программирование, слайд №8Аспектно - ориентированное программирование, слайд №9Аспектно - ориентированное программирование, слайд №10Аспектно - ориентированное программирование, слайд №11Аспектно - ориентированное программирование, слайд №12Аспектно - ориентированное программирование, слайд №13Аспектно - ориентированное программирование, слайд №14Аспектно - ориентированное программирование, слайд №15Аспектно - ориентированное программирование, слайд №16Аспектно - ориентированное программирование, слайд №17Аспектно - ориентированное программирование, слайд №18Аспектно - ориентированное программирование, слайд №19Аспектно - ориентированное программирование, слайд №20Аспектно - ориентированное программирование, слайд №21Аспектно - ориентированное программирование, слайд №22

Вы можете ознакомиться и скачать презентацию на тему Аспектно - ориентированное программирование. Доклад-сообщение содержит 22 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Аспектно - ориентированное программирование
Лекция №1                                   Антонов В.В.
Описание слайда:
Аспектно - ориентированное программирование Лекция №1 Антонов В.В.

Слайд 2





АОП и сквозная функциональность
Описание слайда:
АОП и сквозная функциональность

Слайд 3





modular concern
Описание слайда:
modular concern

Слайд 4





cross-cutting concerns
Описание слайда:
cross-cutting concerns

Слайд 5





Типичные классы задач, решаемые АОП
Описание слайда:
Типичные классы задач, решаемые АОП

Слайд 6





Основные понятия АОП
Точка соединения (joinpoint) — точка в программе, где существует возможность выполнить дополнительный код средствами АОП. Различные реализации АОП имеют различные возможные точки соединения, таковыми могут являться момент вызова методов класса или обращений к полям объекта.
Совет (advice) —класс, реализующий сквозную функциональность. Существуют различные типа советов:  выполняемые до точки соединения, после или вместо неё.
Срез (pointcut) —точка соединения (joinpoint), которая выбрана для исполнения в ней сквозной функциональности, определенная советом (advice). 
Аспект (aspect) — под аспектом понимают комбинацию, состоящую из среза (pointcut) и реализующего сквозную функциональность  совета (advice). Аспект изменяет поведение остального кода, исполняя совет в точках соединения, определённых некоторым срезом. В Spring для этого используется также понятие advisor.
Внедрение или введение (introduction) — под этим термином понимают процесс модификации объекта путем добавления дополнительных полей и /или методов. Внедрение также может быть использовано для реализации объектом интерфейса без явного указания этого в классе объекта.
Связывание (weaving) – связывание аспектов с объектами для создания новых, «расширенных» объектов.
Цель или целевой объект (target) – объект, являющийся результатом связывания (weaving), то есть реализующий первоначальную бизнес логику плюс сквозная функциональность, выполненная одним или несколькими аспектами.
Описание слайда:
Основные понятия АОП Точка соединения (joinpoint) — точка в программе, где существует возможность выполнить дополнительный код средствами АОП. Различные реализации АОП имеют различные возможные точки соединения, таковыми могут являться момент вызова методов класса или обращений к полям объекта. Совет (advice) —класс, реализующий сквозную функциональность. Существуют различные типа советов:  выполняемые до точки соединения, после или вместо неё. Срез (pointcut) —точка соединения (joinpoint), которая выбрана для исполнения в ней сквозной функциональности, определенная советом (advice). Аспект (aspect) — под аспектом понимают комбинацию, состоящую из среза (pointcut) и реализующего сквозную функциональность  совета (advice). Аспект изменяет поведение остального кода, исполняя совет в точках соединения, определённых некоторым срезом. В Spring для этого используется также понятие advisor. Внедрение или введение (introduction) — под этим термином понимают процесс модификации объекта путем добавления дополнительных полей и /или методов. Внедрение также может быть использовано для реализации объектом интерфейса без явного указания этого в классе объекта. Связывание (weaving) – связывание аспектов с объектами для создания новых, «расширенных» объектов. Цель или целевой объект (target) – объект, являющийся результатом связывания (weaving), то есть реализующий первоначальную бизнес логику плюс сквозная функциональность, выполненная одним или несколькими аспектами.

Слайд 7





Различные типы Аспектно-Ориентированного Программирования

Существует два различных способа реализации аспектно-ориентированного программирования: статический и динамический. Эти способы различаются моментами времени, когда происходит связывание (weaving) и способом, как это связывание происходит.
Описание слайда:
Различные типы Аспектно-Ориентированного Программирования Существует два различных способа реализации аспектно-ориентированного программирования: статический и динамический. Эти способы различаются моментами времени, когда происходит связывание (weaving) и способом, как это связывание происходит.

Слайд 8





Статическое АОП
При статической реализации аспектно-ориентированного программирования связывание является отдельным шагом в процессе построения программного продукта (build process) путем модификации  байт-кода (bytecode) классов, изменяя и дополняя его необходимым образом.
Полученный в результате такого подхода код является более производительным, чем при использовании динамического АОП, так как во время исполнения (runtime) нет необходимости отслеживать момента, когда надо выполнить ту или иную сквозную функциональность, представленную в виде совета (aspect).
Недостатком такого подхода реализации аспектно-ориентированного программирования является необходимость перекомпилирования приложения даже в том случае, когда надо только добавить новый срез (pointcut).
Описание слайда:
Статическое АОП При статической реализации аспектно-ориентированного программирования связывание является отдельным шагом в процессе построения программного продукта (build process) путем модификации  байт-кода (bytecode) классов, изменяя и дополняя его необходимым образом. Полученный в результате такого подхода код является более производительным, чем при использовании динамического АОП, так как во время исполнения (runtime) нет необходимости отслеживать момента, когда надо выполнить ту или иную сквозную функциональность, представленную в виде совета (aspect). Недостатком такого подхода реализации аспектно-ориентированного программирования является необходимость перекомпилирования приложения даже в том случае, когда надо только добавить новый срез (pointcut).

Слайд 9





Динамическое АОП
Продукты, реализующие динамический вариант АОП отличается от статического тем, что процесс связывания (weaving) происходит динамически в момент исполнения. В Spring Framework используется именно такой способ связывания и это реализовано с помощью использования специальных объектов-посредников (proxy) для объектов, к которым должны быть применены советы (advice). 
Недостатки статического подхода АОП являются достоинствами динамического: поскольку связывание происходит динамически, то нет необходимости перекомпилировать приложение для изменения аспектов. Однако эта гибкость достигается ценой небольшой потери производительности.
Описание слайда:
Динамическое АОП Продукты, реализующие динамический вариант АОП отличается от статического тем, что процесс связывания (weaving) происходит динамически в момент исполнения. В Spring Framework используется именно такой способ связывания и это реализовано с помощью использования специальных объектов-посредников (proxy) для объектов, к которым должны быть применены советы (advice). Недостатки статического подхода АОП являются достоинствами динамического: поскольку связывание происходит динамически, то нет необходимости перекомпилировать приложение для изменения аспектов. Однако эта гибкость достигается ценой небольшой потери производительности.

Слайд 10





Инструменты АОП
AspectJ
JBoss 
Aspect.NET
Spring Framework
Описание слайда:
Инструменты АОП AspectJ JBoss Aspect.NET Spring Framework

Слайд 11





Исключения и их обработка
Исключение - это проблема(ошибка) возникающая во время выполнения программы. Исключения могут возникать во многих случаях, например:
Пользователь ввел некорректные данные.
Файл, к которому обращается программа, не найден.
Сетевое соединение с сервером было утеряно во время передачи данных.
Описание слайда:
Исключения и их обработка Исключение - это проблема(ошибка) возникающая во время выполнения программы. Исключения могут возникать во многих случаях, например: Пользователь ввел некорректные данные. Файл, к которому обращается программа, не найден. Сетевое соединение с сервером было утеряно во время передачи данных.

Слайд 12





Синтаксис исключений
try - данное ключевое слово используется для отметки начала блока кода, который потенциально может привести к ошибке. 
catch - ключевое слово для отметки начала блока кода, предназначенного для перехвата и обработки исключений.
finally - ключевое слово для отметки начала блока кода, которое является дополнительным. Этот блок помещается после последнего блока 'catch'. Управление обычно передаётся в блок 'finally' в любом случае. 
throw - служит для генерации исключений.
throws - ключевое слово, которое прописывается в сигнатуре метода, и обозначающее что метод потенциально может выбросить исключение с указанным типом.
Описание слайда:
Синтаксис исключений try - данное ключевое слово используется для отметки начала блока кода, который потенциально может привести к ошибке.  catch - ключевое слово для отметки начала блока кода, предназначенного для перехвата и обработки исключений. finally - ключевое слово для отметки начала блока кода, которое является дополнительным. Этот блок помещается после последнего блока 'catch'. Управление обычно передаётся в блок 'finally' в любом случае.  throw - служит для генерации исключений. throws - ключевое слово, которое прописывается в сигнатуре метода, и обозначающее что метод потенциально может выбросить исключение с указанным типом.

Слайд 13





Пример выброса исключения
Описание слайда:
Пример выброса исключения

Слайд 14





Конструкция «поимки» исключения
Описание слайда:
Конструкция «поимки» исключения

Слайд 15





Модифицированный пример
Описание слайда:
Модифицированный пример

Слайд 16





finaly
Описание слайда:
finaly

Слайд 17





Иерархия исключений
Описание слайда:
Иерархия исключений

Слайд 18





Иерархия исключений Error
Error - это подкласс, который показывает серьезные проблемы возникающие во время выполнения приложения. Большинство из этих ошибок сигнализируют о ненормальном ходе выполнения программы, т.е. о каких-то критических проблемах. Эти ошибки не рекомендуется отмечать в методах посредством throws-объявления, поэтому они также очень часто называются не проверяемые (unchecked)
Описание слайда:
Иерархия исключений Error Error - это подкласс, который показывает серьезные проблемы возникающие во время выполнения приложения. Большинство из этих ошибок сигнализируют о ненормальном ходе выполнения программы, т.е. о каких-то критических проблемах. Эти ошибки не рекомендуется отмечать в методах посредством throws-объявления, поэтому они также очень часто называются не проверяемые (unchecked)

Слайд 19





Иерархия исключений Exception
Exception. Эта иерархия также разделяется на две ветви: исключения, производные от класса RuntimeException, и остальные. Исключения типа RuntimeException возникают вследствие ошибок программирования. Все другие исключения являются следствием непредвиденного стечения обстоятельств, например, ошибок ввода-вывода, возникающих при выполнении вполне корректных программ.
Описание слайда:
Иерархия исключений Exception Exception. Эта иерархия также разделяется на две ветви: исключения, производные от класса RuntimeException, и остальные. Исключения типа RuntimeException возникают вследствие ошибок программирования. Все другие исключения являются следствием непредвиденного стечения обстоятельств, например, ошибок ввода-вывода, возникающих при выполнении вполне корректных программ.

Слайд 20





два типа исключений: checked и unchecked
1. Checked исключения, это те, которые должны обрабатываться блоком catch или описываться в сигнатуре метода. Unchecked могут не обрабатываться и не быть описанными.
2. Unchecked исключения в Java - наследованные от RuntimeException, checked - от Exception (не включая unchecked).
Примеры:
 unchecked исключения - NullPointerException, 
сhecked исключения - IOException
Описание слайда:
два типа исключений: checked и unchecked 1. Checked исключения, это те, которые должны обрабатываться блоком catch или описываться в сигнатуре метода. Unchecked могут не обрабатываться и не быть описанными. 2. Unchecked исключения в Java - наследованные от RuntimeException, checked - от Exception (не включая unchecked). Примеры: unchecked исключения - NullPointerException, сhecked исключения - IOException

Слайд 21





Создание собственных исключений
Описание слайда:
Создание собственных исключений

Слайд 22





Обработка нескольких исключений
Описание слайда:
Обработка нескольких исключений



Похожие презентации
Mypresentation.ru
Загрузить презентацию