2075 / C# / Шаблони / Стратегія (Strategy)
Найпопулярніший шаблон
Інкапсулює алгоритм чи поведінку
Через інтерфейс можна підставляти об'єкти в головний клас
static void Main(string[] args) { Car auto = new Car(new PetrolMove()); auto.Move(); auto.Movable = new ElectricMove(); auto.Move(); Console.ReadKey(); } interface IMovable { void Move(); } class PetrolMove : IMovable { public void Move() { Console.WriteLine("Petrol"); } } class ElectricMove : IMovable { public void Move() { Console.WriteLine("Electric"); } } class Car { public IMovable Movable { private get; set; } public Car(IMovable mov) { Movable = mov; } public void Move() { Movable.Move(); } }
Petrol
Electric
Electric