Quelqu'un peut-il poster un exemple de programmation orientée Aspects (AOP) c'est pas de l'exploitation forestière?
J'ai regardé plusieurs ressources, mais tous les exemples sont triviales de l'exploitation forestière. De quoi est-il utile?
Quelqu'un peut-il poster un exemple de programmation orientée Aspects (AOP) c'est pas de l'exploitation forestière?
J'ai regardé plusieurs ressources, mais tous les exemples sont triviales de l'exploitation forestière. De quoi est-il utile?
L'un des exemples qui a été prêté directement à partir de cet Aspect de la Programmation Orientée: Radical de la Recherche de la Modularité, de la vidéo Youtube a été la peinture à l'affichage. Dans l'exemple que vous avez un programme de dessin, qui se compose de points, formes, etc et lorsque les modifications apportées à ces objets se produisent, vous devez dire à l'écran pour mettre à jour lui-même. Sans le manipuler dans un aspect que vous finissent par se répéter un peu.
AOP, comme je l'ai compris, a été créé pour ne pas vous répéter, pour le transversales préoccupations n'ont rien à voir avec la logique métier. Avec les aspects que vous pouvez modulariser ces préoccupations à les aspects. L'un des exemples a été la journalisation mais il y a des tas de choses différentes que vous pourriez finir vers le haut de la répétition. Elle a évolué depuis et c'est pas plus sur la programmation orientée aspects, mais il y a aussi l'aspect modélisation orientée.
Plus d'informations sur la programmation orientée aspects peuvent être trouvés à partir de ces sources:
Sécurité
Plus convivial erreur msgs pour asp.net contrôles webcontrols/webparts
Performance
Annuler - je vais appeler un tiers de l'assemblée qui prend en charge les opérations d'annulation. Il exige que les appelants pour créer une annulation contexte, l'appel de certaines méthodes de l'assemblée, adn, puis à détruire les annuler contexte. Les contextes peuvent être imbriquées. Aussi, si un contexte est créé mais a laissé dans un état indésirable qui nécessite une application redémarrer.
Normalement pour utiliser la commande annuler je voudrais écrire quelque chose comme ceci
void foo()
{
int id = lib.create_undo_context();
try
{
lib.performsomeaction();
lib.performsomeaction();
lib.performsomeaction();
}
finally
{
lib.destroy_undo_context(id);
}
}
avec PostSharp je définir un attribut appelé [Annuler] qui crée l'annuler contexte lorsque la méthode commence et détruit lors de la sortie de la méthode (même si une exception est levée) - de sorte que le code ressemble à ceci
[Undo]
void foo()
{
lib.performsomeaction();
lib.performsomeaction();
lib.performsomeaction();
}
C'est un peu plus compliqué à mettre en œuvre ce que je suis en train de montrer, parce que j'ai s'assurer que tous les annuler, les contextes sont nettoyés, même dans les cas où il y a imbriquée Annuler contextes - mais vous voyez l'idée.
Modèle de conception de la mise en Œuvre en Java et AspectJ (Hannemann et Kiczales): http://www.cs.ubc.ca/labs/spl/papers/2002/oopsla02-patterns.pdf
L'article montre comment certains design patterns GoF mis en œuvre dans une meilleure façon en Java à l'aide d'AspectJ
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.