Tags: Design
MVC-Architektur
von Jose Jorge Gomez Marquez am Nov.17, 2011, under Allgemein
Ich überlasse es Ihnen habe ich eine Präsentation auf MVC-Architektur ist eine sehr konzeptionelle Erklärung und oben, aber meiner Meinung nach genug
zu verstehen, dass Architektur werden.
Genießen Sie es!
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!
Einzigartiges Design Patterns (Singleton) und Dekorateur (Abstract oder Dekorateur). NET
von Jose Jorge Gomez Marquez zu nov.24, 2009, unter DoNet
Nun, nach meiner Lethargie (sorry nicht Posting erwähnt, aber die Universität I Bandwurm wurde überwältigt), werde ich über einige Design-Patterns zu sprechen. NET.
Aber zuerst ein wenig "Geschichte":
Design Patterns werden für verschiedene Dinge verwendet, (aus Wikipedia):
* Bereitstellung von Katalogen wiederverwendbare Elemente in der Gestaltung von Software-Systemen.
* Um Wiederholungen bei der Suche nach Lösungen für bekannte Probleme zu vermeiden und zu lösen, bevor.
* Formalisieren ein gemeinsames Vokabular unter den Designern.
* Standardisieren Modus Design durchgeführt.
* Erleichtern sie das Erlernen von neuen Generationen von Designern kondensierend vorhandenen Wissens.
Und wie wir in der Wikipedia zu sagen hat nicht die Absicht, etwas zu verhängen und sie missbrauchen kann ein Fehler sein.
Nun wollen wir sehen, einige Muster. NET.
Singuläre Patron (Singleton):
Dieses Muster stellt sicher, dass es nur eine Instanz pro Klasse Vermeidung übermäßiger Verbrauch von Ressourcen oder der Zugang inkonsistent. Sein Gebrauch kann mehrere, einschließlich des Zugangs zu globalen Einstellungen, Protokollierung, etc. ..
Das allgemeine Schema ist:
Public Class PatronSingular Private Shared Als PatronSingular instanciaUnica Private Sub New () 'Private Konstruktor zum Erstellen der Instanz der Klasse End Sub Public Shared Function getInstance () Wie PatronSingular "Steuern Sie die Erzeugung von Objekten aus der Klasse selber. Is Nothing Then Wenn instanciaUnica Neue PatronSingular instanciaUnica = () End If Zurück instanciaUnica End Function End Class
Ein Singleton-Musters seinen Konstruktor privat sein sollte, um die Klasse ist, ihre eigene Schöpfung zu steuern und ist verantwortlich für sie. Wir müssen eine Methode, die in der Regel heißt "getInstance ()", die diese Klasse-Instanz zurückgibt zu bedienen.
Decorator-Muster (Decorator):
Es macht "Wrapper"-Objekte, in einer formalen Definition dessen, was sie tut, ist eine Funktionalität, um Objekte, die von ihm erben gesetzt und damit die Verantwortung zuweisen. Kurz gesagt, gibt uns die Möglichkeit, Klassen mit Funktionen, die dynamisch generiert werden zu generieren. Es gibt viele Beispiele von diesem Typ. NET, einschließlich Datei-Management (FileStream Ihr Dekorateur ist Stream). Im Vergleich zu Java, würde dies zu abstrakten Klassen entsprechen. Beispiel:
Public Class MustInherit PatronDecorador "Es bietet eine Basis-Funktionalität für alle Kinder, sondern ', Die sich anders: "Zum Beispiel: "Schokolade wird unterschiedlich bepreist werden und Beschreibung "Butter, aber beide können schmelzen!. Public Function MustOverride Preis () As Double Öffentliche MustOverride Funktion Beschreibung () As Double Public Function Melt () As Boolean "Melt Return True End Function "Es zwingt ihre Kinder in einer bestimmten Weise instanziiert werden Public Sub New (ByVal ModificadorAcceso As String) End Sub End Class Public Class Schokolade Erbt PatronDecorador Public Overrides Function Description () As Double Zurück "Chocolate" End Function Public Overrides Function Preis () As Double 10,2 Return End Function Public Sub New (ByVal Param As String) MyBase.New (param) End Sub End Class Public Class Butter Erbt PatronDecorador Public Overrides Function Description () As Double Return "Butter" End Function Public Overrides Function Preis () As Double 3,6 Return End Function Public Sub New (ByVal Param As String) MyBase.New (param) End Sub End Class
Nun, ich hoffe, öfter zu schreiben, aber die Zeit hat mich ertränkt!, In einem anderen Artikel werde ich die Strategie-Muster, Adapter und Beobachter beschreiben. Grüße!






