真的是这样的吗_

真的是这样的吗_

概述

策略模式也是一种行为型的设计模式,它主要是定义一系列的算法封装起来,然后可以通过策略进行互换,提高代码的复用性可维护性质。其主要实现分为,策略接口,算法类,还有策略类通过扩展算法类来扩展算法,调用策略类来传入不同的算法,实现对应的接口方法


举例:小明要去外地,有汽车和火车两种方式,小明该如何选择,请设计实现。

策略模式

internal class Program
{
    private static void Main(string[] args)
    {
        IVehicle car = new Car();
        IVehicle train = new Train();
        //使用汽车
        Strategy S_car = new Strategy(car);
        S_car.TakeTime("2小时");
        //使用火车
        Strategy S_train = new Strategy(train);
        S_train.TakeTime("1小时");
    }
    public interface IVehicle//交通工具接口
    {
        void Time(string _time);
    }
    public class Car : IVehicle//汽车
    {
        public void Time(string _time)
        {
            Console.WriteLine($"使用汽车花费{_time}时间");
        }
    }
    public class Train : IVehicle//火车
    {
        public void Time(string _time)
        {
            Console.WriteLine($"使用火车花费{_time}时间");
        }
    }
    public class Strategy//策略类
    {
        private IVehicle vehicle;
        public Strategy(IVehicle vehicle)
        {
            this.vehicle = vehicle;
        }
        public void TakeTime(string time)
        {
            vehicle.Time(time);
        }
    }
}

输出结果

使用汽车花费2小时时间
使用火车花费1小时时间

08-18 12:30