【发布时间】:2011-06-10 15:56:57
【问题描述】:
是否有某种模式/解决方案可以用来实现以下目标:
我使用的 API 有一个名为 ApiInterface 的接口。
该接口有1个方法:void apiMethod(BaseType val);。
现在,我想使用此功能,但我想使用自己的接口、不同的方法名称和BaseType 的子类型:
interface MyInterface {
void myMethod(MyType val);
}
MyType 扩展了 BaseType。 myMethod 应该只调用 apiMethod,唯一的区别是它使用 MyType。
有没有办法创建MyInterface,这样它只是传递到ApiInterface,但使用不同的方法名称和我自己的BaseType扩展?我设法使用扩展 ApiInterface 的抽象类来做到这一点,但我想使用接口,而不是类。
【问题讨论】:
-
你不能在接口中“暴露功能”,它们没有行为,只有常量和方法契约。如果你想提供实现(委托给
ApiInterface),你需要通过一个类来实现。
标签: java design-patterns interface