假如你朋友送你乙個新滑鼠,是usb介面的,而你電腦的主機板沒有usb介面,只有ps2介面。但是你想用上新滑鼠,怎麼辦呢。呵呵,大家都知道,買一根連線線,一端接受usb,令一端接收ps2,那就可以了。
在這個例子中,連線線就起到了介面卡的作用。再強調一點,雖然同時usb,但是也要分正負面的,ps2也是。
那麼現在假設滑鼠mouse是帶 usba 介面的(usba與usbb相接)。主機板mainboard是ps2b介面的(ps2b與ps2a相接)。現在買來了usbps2連線線 usbps2adapter。現在來實現一下。
usba 介面描述:
public inte***ce usba
usbb 介面描述:
public inte***ce usbb
ps2a介面描述:
public inte***ce ps2a
ps2b介面描述:
public inte***ce ps2b
滑鼠mouse描述:
public class mouse implements usba
public void join(usbb usbb)
}
主機板mainboard描述:
public class mainboard implements ps2b
public void access(ps2a ps2a)
}
連線線usbps2adapter描述:
public class usbps2adapter implements usbb,ps2a
public void access(usba usba)
public void join(ps2b ps2b)
}
好,材料都準備好了,現在開始接線吧:
public class adaptertest
}
輸出結果:
mainboard with ps2b.
mouse with usba.
adapter with usba and ps2b.
adapter access usba.
adapter join ps2b.
連線成功了!!呵呵
舉例說說Adapter模式
假如你朋友送你乙個新滑鼠,是usb介面的,而你電腦的主機板沒有usb介面,只有ps2介面。但是你想用上新滑鼠,怎麼辦呢。呵呵,大家都知道,買一根連線線,一端接受usb,令一端接收ps2,那就可以了。在這個例子中,連線線就起到了介面卡的作用。再強調一點,雖然同時usb,但是也要分正負面的,ps2也是。...
設計模式 Adapter
adapter設計模式本身並沒有什麼特別,直觀地說就是介面封裝,在使用到第三方庫時我們常常用到,第三方庫提供的介面過於全面,引數過多,在我們實際應用中可能不會用到,通過進一步封裝,提供很好的實際介面。class target class adapter class adaptee 基本上就是三個類協...
設計模式 Adapter
類adapter include using namespace std class cadaptee virtual cadaptee public void func1 virtual ctarget public virtual void func 0 class cadapter publi...