舉例說說Adapter模式

2021-08-29 06:30:10 字數 1230 閱讀 9789

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