Tag:. NET
Pattern Factory (Factory)
da Jose Jorge Marquez Gomez al ago.27, 2010, under DoNet
Un modello di fabbrica serve a incanalare tutte le creazioni di oggetti in un unico punto. Questo è utile per la progettazione robusta del nostro sistema e reagire al cambiamento.
Il modello fabbrica può essere combinato con il pattern singleton come è più comodo da usare e forma utile utilizzare. In questo esempio, metteremo una fabbrica senza singleton.
A dire il modello di fabbrica è dei modelli creativi, questo tipo di modello che astrae il modo per creare oggetti concreti, dando così sostegno alla creazione di oggetti in astratto.
Per avviare un modello di fabbrica è da eseguire:
- Una funzione o metodo, che è responsabile della creazione di oggetti di un determinato tipo.
- Non è obbligatorio ma consigliato che la funzione o il metodo restituisce un astrazione (interfaccia o classe astratta).
Immaginate un negozio di pizza richiede un software è necessario disporre di una serie di prodotti (pizze varia). Come designer siamo buoni, la creazione di oggetti pizza può essere fatto da qualsiasi punto del progetto, ma il problema è che ci sono molti tipi di pizze. Per creare ogni pizza per ogni tipo in diverse parti del programma sarebbe la prima cosa che si potrebbe pensare, ma ... se invece usiamo il buon senso e applicare la fabbrica?, Questo ci permetterebbe, come un nuovo prodotto o un cambiamento in nessuno di essi che il cambiamento in un solo luogo, prendendo più controllato questo codice. Anche se vi rendete conto la velocità del cambiamento è molto più di andare cambiare tutte le possibili aspetti delle nostre pizze dal codice.
Beh, la fabbrica sarebbe responsabile della creazione di tutti i tipi di pizze e di offrire tutti i possibili punti del programma.
Il nostro esempio potrebbe essere:
- Il IPizza interfaccia:
IPizza interfaccia
{
Whoami void ();
}
- Le pizze individuali:
public class PizzaBarbacoa: IPizza
{
# Membri Regione IPizza
public void Whoami ()
{
Console.WriteLine ("Sono una pizza barbecue");
}
# Endregion
}
public class PizzaMargarita: IPizza
{
# Membri Regione IPizza
public void Whoami ()
{
Console.WriteLine ("Io sono un Margarita pizza");
}
# Endregion
}
public class PizzaPepperoni: IPizza
{
# Membri Regione IPizza
public void Whoami ()
{
Console.WriteLine ("Io sono un pepperoni pizza");
}
# Endregion
}
- L'impianto in questione:
public class PizzaFactory
{
public enum tipoPizza
{
Pepperoni, Margherita, Barbeque
}
IPizza pubblico getPizza (tipo tipoPizza)
{
switch (tipo)
{
tipoPizza.Barbacoa caso:
restituire nuova PizzaBarbacoa ();
break;
tipoPizza.Margarita caso:
restituire nuova PizzaMargarita ();
break;
tipoPizza.Pepperoni caso:
restituire nuova PizzaPepperoni ();
break;
default:
restituire nuova PizzaBarbacoa ();
}
}
}
- Un piccolo test:
classe Test pubblico
{
public void testPizza ()
{
/ Non / Esempio di utilizzo di factory
IPizza pizza1 PizzaBarbacoa = new ();
pizza1.quienSoy ();
IPizza pizza2 PizzaMargarita = new ();
pizza2.quienSoy ();
IPizza pizza3 PizzaPepperoni = new ();
pizza3.quienSoy ();
IPizza pizza4 PizzaBarbacoa = new ();
pizza4.quienSoy ();
IPizza pizza5 PizzaMargarita = new ();
pizza5.quienSoy ();
/ / Esempio di utilizzo di fabbrica
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 ();
}
}
Come si può vedere come utilizzare e dei suoi vantaggi sono migliori. Spero che vi piaccia!. Ci vediamo più tardi!
Log4Net per C #
da Jose Jorge Marquez Gomez al ago.25, 2010, under DoNet
Ebbene oggi vi dirò un po 'come configurare log4net per C #. Ma prima vi dico che è log4net.
Log4Net log4java è un framework portato la biblioteca, che fornisce tutti gli strumenti possibili per fare una registrazione, la gestione degli errori, controllo di tutte le applicazioni per le applicazioni possibili. A mio avviso, il log è buono come ho provato finora ed è abbastanza facile da configurare. Offre diverse modalità di monitoraggio e perfino di creare il proprio. Questa libreria è possibile ottenere http://logging.apache.org/log4net/index.html .
Spiega alcuni concetti relativi alla log4net.
Log4Net offre livelli multipli di controllo predefiniti come:
1. Debug: Questo è di solito utilizzato per le linee di debug.
2. Info: E 'spesso usato per dare informazioni relative alla vostra applicazione.
3. Avvisa: sono possibili punti di interruzione del software, voglio dire, eventuali avvisi importanti.
4. Errore: Utilizzato per rilevare gli errori nel vostro software.
5. Irreversibile viene utilizzato per rilevare errori significativi nel software, cioè per impedire il suo funzionamento per esempio.
Questi livelli sono predefiniti porta log4net, ma è possibile creare livelli personalizzati.
Interessante è anche il appenders, è proprio così diversi livelli di log4net saranno monitorati / login log4net lì tra essi vi sono:
1. FileAppender: tronchi sul livello definito nel file di configurazione.
2. RollingFileAppender: registri sul livello definito nella configurazione in un file che ruota a seconda del loro peso.
3. SmtpAppender: registri sul livello definito nella configurazione e viene inviato ad un destinatario di posta.
Più avanti si vedrà un esempio di definizione di tali livelli configurati. Per i dettagli di tutte le proprietà si possono vedere le appenders web che hai qui di seguito.
Tutto quello che potete vedere dettagliate su questo sito http://logging.apache.org/log4net/release/config-examples.html .
Begin.
Il primo passo è descargaros biblioteca del sito precedente, una volta scaricato, è necessario aggiungere questa libreria per i riferimenti del progetto. Poi ci metteremo i log4net nel file di configurazione dell'applicazione, se un'applicazione Web è il web.config, se l'applicazione console app.config, etc ...
Nella "configurazione" tag -> "ConfigSection" -> agregad la seguente riga:
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821"/> Poi un nuovo tag che abbiamo chiamato "<log4net>" i appenders sono configurati lì. Ognuno ha le proprie impostazioni nel sito precedente, si può vedere tutto. Vice log4net Esempio
Una volta che abbiamo questo, si utilizza già i nostri log4net nell'applicazione. Un requisito da soddisfare è che ogni classe deve inizializzare log4net nel suo costruttore in modo che sia come illustrato nel codice seguente:
classe di test { Log Ilog privato; test pubblico () { log4net.Config.XmlConfigurator.Configure (); log = LogManager.GetLogger (this.GetType ()) / / qui si procede per inizializzare il registro oggetto. }
Per fare uso del nostro registro è semplice, basta chiamare i diversi livelli di allerta che ha attraverso il registro oggetto.
Spero che servire come un seme con log4net.
Saluti!






