Language: C#
Pluggin pattern, code example1
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(); } } }
Tags:
Report Abuse
Subscribe
Discuss
What's new
What is it
New Snippet
Recent Snippets
My Snippets
Web Code
Search

