本文为敏捷软件开发 - 原则、模式与实践系列的一部分。
本文对应原书第25章
ABSTRACT SERVER模式
如上图在Switch和Light之间引入一个接口,这样就使得Switch能够控制任何实现了这个接口的东西。这立即就满足了DIP和OCP。这个就是ABSTRACT SERVER模式。
请注意接口的名字是从它的客户的角度起的。它被称为Switchable而不是ILight。我们在前面已经讨论过这个问题,并且可能还会再次看到它。接口属于它的客户,而不是它的派生类。客户和接口之间的逻辑绑定关系要强于接口和它的派生类之间的逻辑绑定关系。它们之间的关系强到在没有Switchable的情况下就无法使用Switch;但是,在没有Light的情况下却完全可以使用Switch。逻辑关系的强度和实体关系的强度是不一致的。继承是一个比关联强得多的实体关系。
ADAPTER模式
上图是一个ADAPTER模式例子。Modem接口有4个方法,新加入一种专线型调试解调器,它无需拨号和挂断,使用专线型调试解调器的客户程序称为DedUser,同时又希望现有客户程序也可以使用这种新型调试解调器。在这个例子中,DedicatedModem