《敏捷软件开发原则模式与实践》的第25章adapter模式有点弄不懂,特发贴求助,望看过此书的朋友指点一下:
有如下几个问题:
1、书上面说有个调制解调器结构用了很久,客户有新的需求,希望不拨号,用专线,这样的使用者DedUser,后面说用DedicatedModem从modem派生并且把dial方法和hanguP方法实现为空,为什么说违反了LSP原则呢,书上说是DedicatedModem的退化实现可能违背改变调制解调器的状态,那算是你不实现为空(如另一个子类Hayes Modem),我也可以说不是这样的,还不是一样违背了吗?
2、还有后面 客户程序期望调用dial方法前调制器处于休眠,调用hangUP时返回休眠,即期望不会从没有拨号的调制器中收到任何字符,DedicatedModem违背了这个期望,又为什么违背了?这类调制器都不需要拨号了,怎么还有收到什么字符之说呢?
3、在25.2.4中又说用dial方法和hangup方法中模拟一个连接状态,就客户端程序不必更改,只要让DedUser去调用dial和hangup即可,为什么不需要改就解决了,让DedUser调用dial和hangup干嘛?
4、25.9的图是不是有问题,dedUser调用DedicatedModem,再由adapter委托调用DedicatedModem,那dedUser怎么使用adapter呢不知道我说清楚了没有,有这本书的对着书看一下,我这里有电子版的,如果有兴趣的朋友也可以加这个群一起讨论182106262,谢谢!