我正在使用工厂模式编写代码。在 switch case 中,我实际上返回类对象。使用此返回的类,我将调用一个方法。这是策略模式的一个示例吗?
using System;
using System.Linq;
namespace ConsoleApplication1
{
public interface IVehicle
{
void Manufacture();
}
public class Car : IVehicle
{
public void Manufacture()
{
Console.WriteLine("Car Manufacturing");
}
}
public class Bike : IVehicle
{
public void Manufacture()
{
Console.WriteLine("Bike Manufacturing");
}
}
public static class factory
{
public static IVehicle GetVehicle(string name)
{
switch(name)
{
case "Car":
return new Car();
case "Bike":
return new Bike();
default:
throw new ArgumentException();
}
}
}
public class program
{
public static void Main()
{
Console.WriteLine("Please enter Car or Bike for manufacture");
var vehicleName = Console.ReadLine();
factory.GetVehicle(vehicleName).Manufacture();
Console.ReadLine();
}
}
}
能否解决我的误解?这段代码是工厂模式和策略模式的示例吗?
编辑
这是策略模式的示例吗?我刚刚编辑了Program.cs。
public class program
{
public static void Main()
{
Console.WriteLine("Please enter Car or Bike for manufacture");
var vehicleName = Console.ReadLine();
var vehicle = factory.GetVehicle(vehicleName);
}
public void manufacture(IVehicle vehicle)
{
// assume that this method is in different class and method is calling with strategy as i understood.
vehicle.Manufacture();
}
}