call / execution

Benutzeravatar
skywalker
Windoof-User
Windoof-User
Beiträge: 36
Registriert: 1. Jun 2004 07:21
Wohnort: Bischofsheim
Kontaktdaten:

call / execution

Beitrag von skywalker »

Hi,

hat jemand ein gutes Fallbeispiel um zwischen call und execution zu unterscheiden?

Klar ist, das call auf der Aufrufer-Seite greift, während execution beim Ausführen der Methode greift. Mir ist aber während der Übung und des Labs noch kein Fall begegnet wo es wirklich einen Einfluß auf die Ausführung gegeben hätte.

Gibt es Dinge die ich mit dem einen machen kann, mit dem anderen aber nicht?
Hat es Einfluß auf cflow oder cflowbelow? - Meines Wissens nämlich nicht.

Lieben Dank
Lukas

marcel_b
Nerd
Nerd
Beiträge: 600
Registriert: 31. Okt 2006 17:04
Kontaktdaten:

Re: call / execution

Beitrag von marcel_b »

Eine Idee(vielleicht hilfts):

Stell dir vor, du schreibst ein Framework und möchtest eine Funktionalität in deinem Framework mit Hilfe eines Aspekts modifizieren (Connection-Pooling wäre so ein Standardbeispiel). Jetzt kannst du entweder Call oder Execution nehmen.

Problem: In einem Framework sind die Clients zum Zeitpunkt des Kompilierens nicht bekannt, da die Clients erst zur Laufzeit in der Applikation bekannt werden. Willst du die Aspekte also statisches zur Compilezeit einweben, musst du es in Execution machen, weil du nur da sicher sein kannst, das er immer ausgeführt wird.

Ein anderer Punkt:
Stell dir vor, du möchtest alle Aufrufe auf String.compareTo() abfangen. Warum solltest du den gesamten Code nach diesem Aufruf untersuchen und ihn vllt hundert mal einweben, wenn es dir doch vollkommen ausreichen würde es nur an einer stelle (in compareTo()) zu tun.

Anders herum geht es genauso... Es kann sein, dass eine Methode für manche Aufrufer anders funktionieren soll als für den Rest des Systems (vllt Sicherheitsbeschränkungen überprüfen oder auch nicht). Dann kann mit hilfe eine call Pointcuts schneller und einfacher das neue Verhalten implementiert werden, weil nur die relevanten Aufrufe abgefangen werden müssen. Der Rest vom System bleibt davon unberührt.


Es kommt darauf an, was du brauchst. Daraus ergibt sich der Rest.

Benutzeravatar
skywalker
Windoof-User
Windoof-User
Beiträge: 36
Registriert: 1. Jun 2004 07:21
Wohnort: Bischofsheim
Kontaktdaten:

Re: call / execution

Beitrag von skywalker »

Vielen Dank Marcel, leuchtet ein!

Gruß
Lukas

Antworten

Zurück zu „Archiv“