Tag:. NET
Usine modèle (usine)
par Jose Jorge Gomez Marquez à ago.27, 2010, sous DoNet
Un modèle de fabrique sert à canaliser toutes les créations d'objets en un seul point. Ceci est utile pour la conception robuste de notre système et de s'adapter aux changements.
Le modèle de fabrique peut être combiné avec le pattern singleton car il est plus confortable à utiliser et la forme utile d'utiliser. Dans cet exemple nous allons mettre une usine sans singleton.
Pour dire le modèle d'usine est des modèles créationnelles, ce type de modèle qui fait abstraction de la manière de créer des objets concrets, donnant ainsi un soutien pour créer des objets dans l'abstrait.
Pour démarrer un modèle de fabrique consiste à effectuer:
- Une fonction ou une méthode qui est responsable de la création d'objets d'un type donné.
- Il n'est pas obligatoire mais recommandé que la fonction ou la méthode retourne une abstraction (interface ou classe abstraite).
Imaginez un magasin de pizza nécessite un logiciel dont vous avez besoin d'avoir un certain nombre de produits (pizzas variées). En tant que concepteurs, nous sommes bien, la création d'objets pizza peut être fait à partir de n'importe où dans le projet, mais le problème c'est qu'il ya de nombreux types de pizzas. Pour créer chaque pizza pour chaque type dans différentes parties du programme serait la première chose que vous pourriez penser, mais ... si, au lieu que nous utilisons le bon sens et d'appliquer l'usine?, Cela nous permettrait aussi d'un nouveau produit ou un changement de l'un d'eux que le changement à un seul endroit, en prenant plus contrôlé ce code. Même si vous vous rendez compte de la vitesse de changement est beaucoup plus pour aller changer toutes les apparences possibles de nos pizzas par le code.
Eh bien, l'usine serait responsable de la création de toutes sortes de pizzas et d'offrir tous les points possibles du programme.
Notre exemple serait:
- Le IPizza interface:
IPizza l'interface
{
Nulle WhoAmI ();
}
- Les pizzas individuelles:
public class PizzaBarbacoa: IPizza
{
Membres de la région # IPizza
public void WhoAmI ()
{
Console.WriteLine ("Je suis une pizza barbecue");
}
# Endregion
}
public class PizzaMargarita: IPizza
{
Membres de la région # IPizza
public void WhoAmI ()
{
Console.WriteLine ("Je suis un Margarita pizza");
}
# Endregion
}
public class PizzaPepperoni: IPizza
{
Membres de la région # IPizza
public void WhoAmI ()
{
Console.WriteLine ("Je suis un pizza au pepperoni");
}
# Endregion
}
- L'usine en question:
public class PizzaFactory
{
public enum tipoPizza
{
Pepperoni, Margherita, Barbecue
}
IPizza publique getPizza (type tipoPizza)
{
Interrupteur (Type)
{
cas tipoPizza.Barbacoa:
return new PizzaBarbacoa ();
break;
cas tipoPizza.Margarita:
return new PizzaMargarita ();
break;
cas tipoPizza.Pepperoni:
return new PizzaPepperoni ();
break;
par défaut:
return new PizzaBarbacoa ();
}
}
}
- Un petit test:
Test de la classe publique
{
public void testPizza ()
{
/ / Exemple ne pas utiliser l'usine
IPizza pizza1 = new PizzaBarbacoa ();
pizza1.quienSoy ();
IPizza pizza2 = new PizzaMargarita ();
pizza2.quienSoy ();
IPizza pizza3 = new PizzaPepperoni ();
pizza3.quienSoy ();
IPizza pizza4 = new PizzaBarbacoa ();
pizza4.quienSoy ();
IPizza pizza5 = new PizzaMargarita ();
pizza5.quienSoy ();
/ / Exemple d'utilisation de l'usine
PizzaFactory PizzaFactory usine = new ();
IPizza pizza6 = factory.getPizza (PizzaFactory.tipoPizza.Barbacoa);
pizza6.quienSoy ();
IPizza pizza7 = factory.getPizza (PizzaFactory.tipoPizza.Margarita);
pizza7.quienSoy ();
IPizza pizza8 = factory.getPizza (PizzaFactory.tipoPizza.Pepperoni);
pizza8.quienSoy ();
}
}
Comme vous pouvez voir comment utiliser et ses avantages sont une meilleure. J'espère que vous aimez!. Rendez-vous plus tard!
Log4net pour C #
par Jose Jorge Gomez Marquez à ago.25, 2010, sous DoNet
Eh bien aujourd'hui, je vais vous raconter un peu comment configurer log4net pour C #. Mais avant que je vous dis que c'est log4net.
Log4net est un cadre log4java porté la bibliothèque, qui fournit tous les outils possibles pour faire une exploitation forestière, la gestion des erreurs, suivi toutes vos applications pour les applications possibles. À mon avis, le journal est aussi bon comme je l'ai essayé jusqu'à présent et il est très facile à configurer. Offres modes de surveillance et même de créer plusieurs vous vous-même. Cette librairie vous pouvez obtenir http://logging.apache.org/log4net/index.html .
Expliquer certains concepts liés à log4net.
Log4net propose plusieurs niveaux de contrôle prédéfini:
1. Debug: Ceci est habituellement utilisé pour les lignes de débogage.
2. Info: Il est souvent utilisé pour donner des informations relatives à votre demande.
3. Avertir: points d'arrêt sont possibles de votre logiciel, je veux dire, toutes les alertes importantes.
4. Erreur: Utilisé pour détecter des erreurs dans votre logiciel.
5. Fatal est utilisé pour détecter les erreurs importantes dans le logiciel, à savoir empêcher le fonctionnement de celui-ci par exemple.
Ces niveaux sont prédéfinis apporte log4net, mais vous pouvez créer des niveaux personnalisés.
Un autre point fort est les appenders, c'est juste la façon dont les différents niveaux de log4net sera surveillé / connecté log4net là elles englobent:
1. FileAppender: les journaux sur le niveau défini dans le fichier de configuration.
2. RollingFileAppender: les journaux sur le niveau défini dans la configuration dans un fichier qui tourne en fonction de leur poids.
3. SmtpAppender: les journaux sur le niveau défini dans la configuration et est envoyé à un destinataire.
Plus tard, vous verrez un exemple de la définition de ces niveaux configurés. Pour plus de détails de toutes les propriétés que vous pouvez voir les appenders Web que vous avez ci-dessous.
Tout ce que vous pouvez voir en détail sur cette page web http://logging.apache.org/log4net/release/config-examples.html .
Begin.
La première étape consiste descargaros la bibliothèque de l'ancien site, une fois téléchargé, vous devez ajouter cette bibliothèque pour vos références de projet. Ensuite, nous allons définir les log4net dans le fichier de configuration de votre demande, si une application Web est le web.config, si l'application de console app.config, etc ...
Dans la balise "configuration" -> "ConfigSection" -> agregad la ligne suivante:
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821"/> Puis une nouvelle balise que nous avons appelé "<log4net>" les appenders sont configurés il. Chacun a ses propres paramètres dans le site précédent, vous pouvez voir tous. Sous log4net Exemple
Une fois que nous avons cela, vous utilisez déjà nos log4net dans votre application. Une exigence à satisfaire est que chaque classe doit initialiser log4net dans son constructeur pour qu'il soit comme illustré dans le code suivant:
classe de test { Ilog journal privé; test public () { log4net.Config.XmlConfigurator.Configure (); = log LogManager.GetLogger (this.GetType ()) / / ici nous procédons à initialiser le journal objet. }
Pour faire usage de notre journal est simple, il suffit d'appeler les différents niveaux d'alerte qui a par le journal objet.
J'espère que vous servir de semences avec log4net.
Salutations!






