首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >扩展适配器模式

扩展适配器模式
EN

Stack Overflow用户
提问于 2012-03-12 17:12:18
回答 1查看 215关注 0票数 4

我有一个接口IA。适配器B实现了该接口。IZ是一个由XYZ类实现的接口。IA是我的应用程序使用适配器B与X、Y和Z进行通信的接口。B包含一个IZ (Adapter模式)的实例。现在从适配器B中,我想访问X特有的功能,但是由于在适配器中它绑定到接口IZ,我如何以干净的方式访问这个功能?另外,适配器B中的IZ实例也是根据用户的一些手动活动在运行时确定的。是否有任何方法可以使用依赖注入来实例化适配器B中的IZ实例(我希望避免使用新的运算符)?

[医]

|

B(有IZ的实例)

伊兹

//\

X-Y-Z

编辑: X‘,Y’,Z‘进入picture...all具有相同的接口IZ,但Y’可能有一个方法(可能与X不相同)需要从B访问。

我不能控制X,Y和Z或X',Y',Z‘,除了它们可以实现IZ接口之外。但是我控制了IA和B。我基本上使用了适配器模式,以便新的类能够适应我的接口IA。

EN

回答 1

Stack Overflow用户

发布于 2012-04-07 13:01:51

如果您的类B想要访问不通过IZ公开的X公共接口的一部分,那么它不再只是IZ接口的适配器。

在我看来,如果没有通过公共接口访问不同类型的适配器,它们就需要单独的适配器。因为从您的描述中听起来可能有很多常见的功能,所以您可以使用适配器之间的继承来避免代码重复。

您可能需要一个工厂,用于根据所适应对象的类型创建适配器。工厂还可用于根据需要根据用户活动实例化XY &c的实例和必要的适配器。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9671593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档