首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >相同接口,实现差异

相同接口,实现差异
EN

Stack Overflow用户
提问于 2013-07-25 08:51:48
回答 4查看 157关注 0票数 3

给定:-需要在同一接口下收集的不同实现

厄运:这些实现有一个方法'create',,但是输入params的数量和类型不同,

解决办法…?除了对象的变化之外,还有什么其他的选择?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-07-25 08:56:53

假设您只想在您想要的接口下创建一个方法

创建一个包装类来实现您想要的接口。现在,根据某些条件调用包装类中的各种实现。

的可维护性透视

如果可能,请避免使用条件,并从调用代码中发送实现类名,.just调用作为调用代码传递的参数传递的类上的create方法。(为此,您还需要使用某个对象类作为参数创建虚拟创建方法,该方法包含每个实现类下的所有参数,这些参数将调用简单地委托给具有所需数量的params的预定方法)

票数 1
EN

Stack Overflow用户

发布于 2013-07-25 09:02:37

如果该方法如此灵活,那么尝试通过接口强制执行它似乎没什么意义。不过,您可以做的是实现一个接口,描述要传递的不同类型的参数。

例如:

代码语言:javascript
复制
public abstract create(CreateParamsInterface cpi) {};

然后在类中实现该抽象方法,使用相关的公开va CreateParamsInterface的成员。

票数 0
EN

Stack Overflow用户

发布于 2013-07-25 09:06:12

在接口中,提供一个将条件作为参数的方法,您可以根据该参数决定要调用的create的哪个版本。根据条件,您可以调用相应的create(),function.The逻辑与工厂设计模式逻辑相同。

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

https://stackoverflow.com/questions/17853293

复制
相关文章

相似问题

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