我有一個接口IA。適配器B實現了該接口。 IZ是由X,Y和Z類實現的接口。 IA是一個接口,與我的應用程序通過該接口通過適配器B與X,Y和Z進行通信。 B包含IZ(適配器模式)的一個實例。現在來自適配器B,我想要訪問X獨有的功能,但是由於在適配器中它必然會與IZ接口,我怎樣才能以clean的方式訪問此功能?此外,適配器B中的IZ實例在運行時基於用戶的某些手動活動來決定。有沒有什麼辦法可以使用依賴注入來實例化適配器B中的IZ實例(我想避免使用新的運算符)?
IA
|
B(具有IZ的實例)擴展適配器模式
IZ
/| \
XYZ
編輯:有很高的機會X',Y',Z'可以進入圖片...所有具有相同的接口IZ但Y'可能有一個方法(可能不與X相同)需要從B進行訪問.Y'和X的唯一方法都將適應接口IA中的一些常用方法M我不能控制X,Y和Z或X',Y'和Y'。我不能控制X,Y和Z' ,Z'除了可以實現IZ接口外。但我有過IA和B.控制我使用的適配器模式本質上,使新課程能適應我的接口IA
那麼如果適配器B是用Y或Z而不是X的實例創建的,那麼你會發生什麼? – 2012-03-12 17:13:29
返回某個常數東西 – r15habh 2012-03-12 17:16:49
這聽起來像你應該穿IZ更多的成員,然後 - 使Y和Z通過返回「不變的東西」實施這些成員並進行X做任何它通常意味着。 – 2012-03-12 17:19:04