Question

Bonjour à tous

Je souhaite demander comment utiliser un bloc d'application d'injection de stratégie pour consigner l'entrée et la sortie de méthodes dans les cas suivants:

Cas1: en cas de journalisation des gestionnaires d'événements d'un contrôle de formulaire Web, vous savez que la classe, par exemple, doit être héritée de la classe System.Web.UI.Page . Nous ne pouvons donc pas hériter de notre classe de la classe MarshalByRefObject , de sorte que la journalisation ne fonctionnera pas.

Cas2: dans le cas où nous aurions une classe statique et que nous devions journaliser les méthodes qu'il contient, ce que nous pouvons faire pour hériter de cette classe de MarshalByRefObject calss, afin d'obtenir des travaux de journalisation.

Était-ce utile?

La solution

Il me semble qu’ils ont des exigences stupides pour pouvoir appliquer la journalisation ... Cela peut être un hors-sujet, mais vous voudrez peut-être examiner le cadre Spring.AOP pour appliquer la journalisation à vos objets sans avoir à hériter de MarshalByRefObject. (Dans les langages amputés à héritage multiple, c’est une exigence agaçante et radicale, je pense).

Autres conseils

En ce qui concerne le cas 1, le bloc d'injection de stratégie peut agir sur les objets pour lesquels vous avez une interface. C'est assez facile à faire dans Visual Studio en utilisant l'action Refactor- & Extract Interface, si vous n'écrivez pas déjà avec les interfaces à l'esprit.

En ce qui concerne le cas 2, votre " statique " classe ne peut pas vraiment être une classe statique. Il peut hériter de MarshalByRefObject ou implémenter une interface que vous spécifiez. Il pourrait alors avoir un constructeur privé et une instance singleton que vous injectez de stratégie. Toutes vos méthodes statiques n’appelleraient que les méthodes d’instance correspondantes (injectées par une stratégie) sur l’instance singleton de la classe.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top