CodePaste Logo
New Snippet New Snippet Recent Snippets Recent Snippets My Snippets My Snippets Web Code Search Snippets Search
Sign inor Register
Language: C#

Pluggin pattern, code example1

139 Views
Copy Code Show/Hide Line Numbers
using System;
 
namespace ValidationEngine
{
class MainApp
{
static void Main()
{
Context anObject;
 
// Ejemplo de 3 contextos usando diferentes estrategias.
anObject = new Context(new ValidateStrings());
anObject.Validate();
anObject.UpdateContext(new ValidateRequirementValues());
anObject.Validate();
anObject.UpdateContext(new ValidateRegularExpressions());
anObject.Validate();
}
}
 
///
/// Interfase que define función de validación.
///
 
interface IValidate
{
void Validate();
}
 
///
/// Implementa un algoritmo de validación de strings
///
 
class ValidateStrings : IValidate
{
public void Validate()
{
Console.WriteLine("Called ValidateStrings.Validate()");
}
}
 
///
/// Implementa un algoritmo de validación de valores requeridos.
///
 
class ValidateRequirementValues : IValidate
{
public void Validate()
{
Console.WriteLine("Called ValidateRequirementValues.Validate()");
}
}
 
///
/// Implementa un algoritmo de validación de expresiones regulares.
///
 
class ValidateRegularExpresions : IValida
{
public void Validate()
{
Console.WriteLine("Called ValidateRegularExpressions.Validate()");
}
}
 
///
/// Configura la clase de context para obtener la referencia al objeto de estrategia.
///
 
class Context
{
 
IValidate strategy;
 
// Constructor
public Context(IValidate strategy)
{
this.strategy = strategy;
}
 
public void UpdateContext(IValidate strategy)
{
this.strategy = strategy;
}
 
public void Validate()
{
strategy.Validate();
}
}
}
by Salanitri Sergio
  August 09, 2009 @ 7:26pm
Tags:

Add a comment


Report Abuse
brought to you by:
West Wind Techologies



If you find this site useful and use it frequently please consider making a donation to support this free service.
Donate