Delphi中的Wrapper模式是在 ‘Adapter’ or ‘Wrapper’ 的基礎上上改造的。更多的介紹請查閱[Gam+, pages 139..150]。
‘將一個接口轉換成客戶期待的別外一個接口。Wrappers 模式使得原本由於接口不兼容而不能一起工作類可以一起工作,參閱 [Gam+ 139].
在Delphi的Object Pascal語言中類對多態性的支持遠比接口對多態的支持高。同樣意味著兩個類雖然可以同時支持一個接口,但它們必須有相同的組先類,從而客戶對象可以對類執行動態變換。但有時我們想使一些原本無關的類在一起工作,此時wrapper模式讓你將一類包裝成另一個類的接口。它類同於多重繼承,但在Delphi是一種引用關系。
開始講述下面的例了,好:
假設您有一個繼承自Tobject並想安裝到控件板的類:Tsample,但此時必須讓組件支持Tcomponent。高興的是有一種好的辦法不用改變Tsample的繼承關系就可以將轉換成支持
Tcomponent(比如此時你沒有類的源碼,只有它的BPL包),創建一個繼承於Tcomponent的新類TsampleWrapper,並將引用聚合類Tsample。此後類TsampleWrapper將是Tcomponent後代,你可以將它加入控件板了。你現在將Tsample