Order订单的实现可以采用异步也可以采用同步,但接口(IBLLStrategy.IOderStrategy)就一个,不论是同步(OrderSynchronous)还是异步(OrderAsynchronous)都要去实现这个接口。然后在BLL.Order应该配置文件反射依赖注入对其进行实例化,当然这也用到了多态的规则。
下面先来看看什么事策略模式吧(下图是网上找的):
按照这个模式的话我们来一一对照吧:
Strategy-----IBLLStrategy.IOderStrategy
ConcreteStrategyA-----BLL.OrderSynchronous
ConcreteStrategyB------OrderAsynchronous
Context-----BLL.Order
这就是策略模式的应用吧,但petshop的策略模式比较复杂,它还加了抽象工厂模式的应该,就是在同步和异步调用中。具体代码我就不再贴出来了。