1 / 16

Aspekt-orienteret programmering (AOP)

Aspekt-orienteret programmering (AOP). Lars Christensen Daniel Simonsen. Præsentation af AOP. Hvad er AOP og hvordan komplementerer det objekt-orienteret udvikling? Kodeeksempel Fordele og ulemper. AOP terminologi. Tværgående funktionalitet (eng. crosscutting concerns ) Advice

paiva
Download Presentation

Aspekt-orienteret programmering (AOP)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Aspekt-orienteret programmering (AOP) Lars Christensen Daniel Simonsen

  2. Præsentation af AOP • Hvad er AOP og hvordan komplementerer det objekt-orienteret udvikling? • Kodeeksempel • Fordele og ulemper

  3. AOP terminologi • Tværgående funktionalitet (eng. crosscutting concerns) • Advice • Point-cut • Aspekt (eng. aspect)

  4. Tværgående funktionalitet • Ex. sikkerhed, validering af inddata, fejlhåndtering, logning m.m. Klasser (OO programmering)

  5. Join punkt (eng. join point) • Et veldefineret punkt i programudførelsen, der bruges til at sammenføje eksekvering af ”ny” og ”gammel” kode • Eksempler på join punkter er metodekald, tilgang til variable og ved kode til undtagelseshåndtering (eng. exception handling)

  6. Advice • Kode, der skal eksekveres på et bestemt tidspunkt; før, efter eller omkring et join punkt • before(): før join punktet • after(): efter join punktet • around(): kan styre om join punktet bliver eksekveret eller ej ved brug af proceed()

  7. Pointcut • Et pointcut er en sprogkonstruktion, der udvælger et sæt af join punkter, der opfylder visse kriterier

  8. Aspekt • Et aspekt er kombinationen af et pointcut og advice kode.

  9. Introduction • Brug af introduction gør det muligt for aspekter at ændre programmets struktur; • Kan tilføje nye metoder og variable • Erklære, at en klasse implementerer et interface

  10. Implementationer • AspectJ • Jboss AOP • Nanning • Aspectwerkz • Spring

  11. Kodeeksempel

  12. Kodeeksempel

  13. Kodeeksempel

  14. Kodeeksempel

  15. Fordele • Reduceret kodekompleksitet og udviklingstid • Tilsyneladende ingen ydelsesforringelse • Man undgår fejl forårsaget af (næsten) identisk kode • Nemt at vedligeholde og udvide systemer ved at tilføje aspekter • Aspekter kan genbruges

  16. Ulemper • Fejlfinding kan blive vanskeligere (?) • Mulighed for spaghettikode, hvis aspekter bliver brugt ukritisk

More Related