我有一个接口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