请用c#写一段工厂对接叫料的代码
时间: 2024-05-07 09:20:18 浏览: 15
好的,以下是一段示例代码:
```csharp
// 定义一个接口,表示叫料的方法
public interface IOrderService
{
void Order(string item);
}
// 定义一个工厂类,根据传入的参数返回对应的叫料服务实例
public static class OrderServiceFactory
{
public static IOrderService GetOrderService(string vendor)
{
switch(vendor)
{
case "A":
return new VendorAOrderService();
case "B":
return new VendorBOrderService();
default:
throw new ArgumentException("Unsupported vendor: " + vendor);
}
}
}
// 实现一个叫料服务,用于与 Vendor A 对接
public class VendorAOrderService : IOrderService
{
public void Order(string item)
{
// 调用 Vendor A 的 API 来下单
// ...
Console.WriteLine("Ordered " + item + " from Vendor A.");
}
}
// 实现另一个叫料服务,用于与 Vendor B 对接
public class VendorBOrderService : IOrderService
{
public void Order(string item)
{
// 调用 Vendor B 的 API 来下单
// ...
Console.WriteLine("Ordered " + item + " from Vendor B.");
}
}
// 使用工厂类获取叫料服务实例,并调用其 Order 方法来下单
public class Client
{
public void OrderItem(string vendor, string item)
{
var orderService = OrderServiceFactory.GetOrderService(vendor);
orderService.Order(item);
}
}
```
在上面的示例代码中,我们定义了一个 `IOrderService` 接口,表示叫料的方法。然后,我们实现了两个具体的叫料服务,分别用于与 Vendor A 和 Vendor B 对接。最后,我们使用 `OrderServiceFactory` 工厂类来根据传入的参数获取对应的叫料服务实例,并调用其 `Order` 方法来下单。