Tag:. NET
Muster-Fabrik (Factory)
von Jose Jorge Gomez Marquez zu ago.27, 2010, unter DoNet
Ein Factory-Pattern dient dazu, alle Kreationen von Objekten in einem einzigen Punkt zu lenken. Dies ist nützlich für robustes Design unseres Systems und auf Veränderungen reagieren.
Das Factory-Pattern können mit dem Singleton-Muster kombiniert werden, da es mehr komfortabel zu bedienen und nützliche Form zu bedienen ist. In diesem Beispiel werden wir eine Fabrik ohne Singleton setzen.
Um das Factory-Pattern sagen, ist der Erzeugungsmuster, diese Art von Muster, das den Weg für konkrete Objekte zu erstellen abstrahiert und damit Möglichkeiten zur Unterstützung von Objekten in der Zusammenfassung zu erstellen.
Um eine Fabrik-Muster zu beginnen ist, durchzuführen:
- Eine Funktion oder Methode die verantwortlich ist für das Erzeugen von Objekten eines bestimmten Typs.
- Es ist nicht verpflichtend, aber empfohlen, die Funktion oder Methode eine Abstraktion (Schnittstelle oder eine abstrakte Klasse) gibt.
Stellen Sie sich eine Pizza Shop benötigt eine Software, die Sie benötigen, um eine Reihe von Produkten (Pizza variiert) haben. Als Designer sind wir gut sind, kann die Pizza Objekt-Erstellung von jedem beliebigen Ort in das Projekt durchgeführt werden, aber das Problem ist, dass es viele Arten von Pizzen. Um jede Pizza für jeden Typ in verschiedenen Teilen des Programms zu erstellen wäre das erste, was würden Sie denken, aber ... Wenn wir stattdessen mit gesundem Menschenverstand und wenden Sie das Werk?, Würde dies uns als neues Produkt oder eine Änderung des Inhalts von ihnen erlauben dass nur Veränderungen an einem Ort, unter mehr kontrolliert diesen Code. Selbst wenn Sie erkennen, das Tempo der Veränderungen ist viel mehr zu gehen Ändern aller möglichen Erscheinungen unserer Pizzas durch den Code.
Na ja, wäre das Werk verantwortlich für die Erstellung aller Arten von Pizzen und bieten alle möglichen Punkte des Programms.
Unser Beispiel wäre:
- Die Schnittstelle IPizza:
IPizza Schnittstelle
{
WhoAmI void ();
}
- Die einzelnen Pizzen:
public class PizzaBarbacoa: IPizza
{
# Region Mitglieder IPizza
public void WhoAmI ()
{
Console.WriteLine ("Ich bin ein BBQ Pizza");
}
# Endregion
}
public class PizzaMargarita: IPizza
{
# Region Mitglieder IPizza
public void WhoAmI ()
{
Console.WriteLine ("Ich bin eine Pizza Margarita");
}
# Endregion
}
public class PizzaPepperoni: IPizza
{
# Region Mitglieder IPizza
public void WhoAmI ()
{
Console.WriteLine ("Ich bin ein Pizza Pepperoni");
}
# Endregion
}
- Die Anlage in Frage:
public class PizzaFactory
{
public enum tipoPizza
{
Pepperoni, Margherita, Barbeque
}
IPizza öffentlichen getPizza (tipoPizza Typ)
{
Schalter (Typ)
{
tipoPizza.Barbacoa Fall:
return new PizzaBarbacoa ();
zu brechen;
tipoPizza.Margarita Fall:
return new PizzaMargarita ();
zu brechen;
tipoPizza.Pepperoni Fall:
return new PizzaPepperoni ();
zu brechen;
Standard:
return new PizzaBarbacoa ();
}
}
}
- Ein kleiner Test:
public class Test
{
public void testPizza ()
{
/ / Beispiel nicht mit werkseitig
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 ();
/ / Beispiel mit werkseitig
PizzaFactory PizzaFactory factory = 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 ();
}
}
Wie Sie sehen können, wie Sie und ihre Vorteile sind besser. Ich hoffe euch gefällt!. See you later!
Log4Net für C #
von Jose Jorge Gomez Marquez zu ago.25, 2010, unter DoNet
Nun, heute werde ich Ihnen ein wenig, wie man log4net für C # zu konfigurieren. Aber bevor ich Ihnen sagen, das ist log4net.
Log4Net ist ein Framework portiert log4java die Bibliothek, die alle Werkzeuge bietet, um eine möglichst Logging, Fehlerbehandlung, die Überwachung all Ihre Anwendungen für mögliche Anwendungen zu machen. Aus meiner Sicht ist das Protokoll so gut, wie ich bisher ausprobiert und ist recht einfach zu konfigurieren. Bietet verschiedene Monitoring-Modi und sogar erstellen Sie Ihre eigenen. Das Buchladen können Sie http://logging.apache.org/log4net/index.html .
Erklären Sie einige Begriffe im Zusammenhang mit log4net.
Log4Net bietet mehrere Ebenen der Überwachung vordefiniert:
1. Debug: Das wird normalerweise für Debug-Zeilen verwendet.
2. Info: Es wird oft verwendet, um Informationen im Zusammenhang mit Ihrer Bewerbung zu geben.
3. Über: Haltepunkte sind möglich von Ihrer Software, ich meine, keine wichtigen Meldungen.
4. Fehler: Wird verwendet, um Fehler in der Software zu erkennen.
5. Fatal verwendet wird, um erhebliche Fehler bei der Software zu erkennen, dh, um dessen Betrieb zu verhindern zum Beispiel.
Diese Werte sind vordefiniert bringt log4net, aber Sie können eigene Levels erstellen.
Ein weiteres Highlight ist die Appender, das ist nur, wie verschiedene Ebenen der log4net überwacht wird / werden protokolliert in log4net dort dazu gehören:
1. FileAppender: Protokolle auf dem Niveau in der Konfigurationsdatei definiert.
2. RollingFileAppender: Protokolle auf dem Niveau in der Konfiguration in einer Datei, die je nach Gewicht dreht definiert.
3. SmtpAppender: Protokolle auf dem Niveau in der Konfiguration definiert und wird zu einem Mail-Empfänger gesendet.
Später werden Sie sehen, ein Beispiel für die Festlegung dieser Werte konfiguriert. Nähere Angaben zu allen Eigenschaften sehen Sie die Web-Appender haben Sie weiter unten.
Alles, was Sie sehen können detailliert auf dieser Web- http://logging.apache.org/log4net/release/config-examples.html .
Beginnen.
Der erste Schritt ist descargaros Bibliothek der bisherigen Website, einmal heruntergeladen, müssen Sie diese Bibliothek an Ihr Projekt Verweise hinzufügen. Dann werden wir die log4net in der Konfigurationsdatei Ihrer Anwendung gesetzt, wenn eine Webanwendung, die web.config ist, wenn die app.config-Konsole-Anwendung, etc ...
Im Tag "Konfiguration" -> "ConfigSection" -> agregad die folgende Zeile:
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821"/> Dann wird ein neues Tag, dass wir als "<log4net>" die Appender sind dort konfiguriert. Jeder hat seine eigenen Einstellungen in der vorherigen Website finden Sie alle sehen können. Stellvertretender log4net Beispiel
Sobald wir diese haben, Sie bereits unseren log4net in Ihrer Anwendung. Eine Anforderung zu erfüllen ist, dass jede Klasse muss log4net in seinem Konstruktor initialisieren, so daß sie nach dem folgenden Code dargestellt:
Klasse Test { Ilog privaten log; Öffentlichkeit test () { log4net.Config.XmlConfigurator.Configure (); log = LogManager.GetLogger (this.GetType ()) / / hier vorgehen, um das Objekt log zu initialisieren. }
Um die Nutzung unserer log ist einfach, wir rufen Sie einfach die verschiedenen Ebenen der Warnung, die durch das Objekt-Log hat.
Ich hoffe, Sie wie ein Samenkorn mit log4net dienen.
Grüße!






