static void Main(string[] args) { IWorker[] workers = new IWorker[3] { new Worker(), new Robot(), new Manager() }; foreach (IWorker worker in workers) { worker.Work(); } IEat[] eats = new IEat[2] { new Worker(), new Manager() }; foreach (IEat eat in eats) { eat.Eat(); } IGetSalary[] getSalary = new IGetSalary[2] { new Worker(), new Manager() }; foreach (IGetSalary getSalarys in getSalary) { getSalarys.GetSalary(); } Console.ReadKey(); }
static void Main(string[] args) { IWorker[] workers = new IWorker[] { new Manager(), new Worker(), new Robot() }; foreach (var worker in workers) { worker.Work(); } IEat[] eats = new IEat[] { new Manager(), new Worker() }; foreach (var eat in eats) { eat.Eat(); } IGetSalary[] getSalary = new IGetSalary[] { new Manager(), new Worker() }; foreach (var salary in getSalary) { salary.GetSalary(); } }
static void Main(string[] args) { IWorker[] workers = new IWorker[3] { new Worker(), new Manager(), new Robot() }; IEat[] eaters = new IEat[2] { new Worker(), new Manager() }; IGetSalary[] salaries = new IGetSalary[2] { new Worker(), new Manager() }; }
/// <summary> /// Контекст позволяет заменить объект Стратегии во время выполнения. /// </summary> /// <param name="getSalary"></param> public void SetStrategy(IGetSalary getSalary) { this._getSalary = getSalary; }
// Обычно Контекст принимает стратегию через конструктор, а также // предоставляет сеттер для её изменения во время выполнения. public SalaryContext(IGetSalary getSalary) { this._getSalary = getSalary; }