舉例說說Adapter模式

2021-08-25 06:59:08 字數 1293 閱讀 9206

假如你朋友送你乙個新滑鼠,是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...