我正在使用 N 个提供商发送 SMS 消息的 Web 服务。每个提供者在自己的 Web 服务中接收不同格式的消息。
为了在我的 Web 服务中创建模式,我创建了一个抽象类,其中包含要为每个提供程序实现的许多方法。
一些方法需要接收一个可以是不同类型的对象,这取决于继承它的子类(提供者)。这些方法之一返回可以是至少两种不同类型的对象。
我使用“object”关键字实现了这一点,它允许我传递或返回任何对象:
public abstract class Provider {
protected HttpClient _Client;
protected SMSManagerAPIContext _Context;
public abstract DeliveryResponse SendSMS(object Sms);
protected abstract DeliveryResponse ParseResponse(HttpResponseMessage Response);
public abstract object PrepareMessage(SMS Sms);
protected abstract void SaveResponse(object Sms, HttpResponseMessage Response);
}
方法中Sms接收到的对象是SendSMS方法的返回PrepareMessage。问题是PrepareMessage可能返回不同类型的对象。
(例如,我的一个提供者接受发送一条消息或多条消息的请求,但每个消息的对象都不同。然后我在PrepareMessage方法中返回正确的对象,该SendSMS方法将其作为 JSON 对象发送给提供者。 )
慕斯709654
相关分类