Csharp/CSharp Tutorial/Design Patterns/Strategy Pattern

Материал из .Net Framework эксперт
Версия от 12:17, 26 мая 2010; Admin (обсуждение | вклад) (1 версия)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Strategy Pattern

using System;
  public abstract class Strategy
  {
    public abstract void MyRule();
    public Strategy(){;}
  }
  public class CorporateStrategy: Strategy
  {
    
    public override void MyRule()
    {
      Console.WriteLine("Corporate.");
    }
    public CorporateStrategy(){;}
  }
  public class CreditSalesContext
  {
    Strategy aStrategy;
    
    public CreditSalesContext (Strategy crStrategy)
    {
      this.aStrategy = crStrategy;
    }
    public void BusinessRule()
    {
      this.aStrategy.MyRule();
    }
  }
  public class DealerStrategy: Strategy
  {
    
    public override void MyRule()
    {
      Console.WriteLine("Dealer.");
    }
    
    public DealerStrategy(){;}
  }
  class Client{
    static void Main(string[] args){
      CreditSalesContext cr = new CreditSalesContext(new CorporateStrategy());
      cr.BusinessRule();
    }
  }