问题标签 [interface-implementation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
5085 浏览

java - 使用 Java 8 在运行时选择具体实现

我不清楚在选择要实例化的实现/子类时将if/放在哪里,特别是考虑到现在接口可以具有静态方法时。switch

假设我有一个服务,一个由接口定义的类型和几个实现。我想最好不要把这个逻辑放在服务中,而是有工厂方法。但是它应该像这个答案中所建议的那样进入界面还是进入另一个具有参数到类型映射的类?

将它放在界面中对我来说似乎很自然:

然后只需从服务中调用它:

但是我不知道让接口知道它的实现是否不好,或者让父类知道它的子类型是否不好。所以

  1. 我应该把这个逻辑放在哪里?
  2. 如果我选择一种类型的子类,那会改变很多吗?
0 投票
2 回答
3681 浏览

vb.net - 即使定义了函数,我也必须在类中实现函数的错误

我得到错误:Class 'QueryParameterComparer' must implement 'Function Compare(x As QueryParameter, y As QueryParameter) As Integer' for interface 'System.Collections.Generic.IComparer(Of QueryParameter)'.

在这个类定义上:

我也试着把它完整地写出来:

我错过了什么?

0 投票
1 回答
1179 浏览

c# - 在 C# 中实现 ICollection.CopyTo:深拷贝还是浅拷贝?

我正在编写一个实现的自定义类,IDictionary但我不知道该怎么做CopyTo。应该将每个元素都复制到目标数组(浅拷贝),还是应该复制/克隆每个元素,然后将其放入目标数组(深拷贝)?

0 投票
1 回答
40 浏览

c++ - 什么是单独的实现交互类习语,我什么时候使用它?

我偶尔会遇到我只能描述为“接口实现习语”,其中一个类被分为“接口类”和“实现类”。

这背后的哲学或推理是什么?

这种方法的示例用法是什么?这种类系统的示例是什么样的?为什么将类分成接口和实现会有用?

0 投票
1 回答
1470 浏览

c# - 接口更改时从实现中删除接口成员

情况:

我实现了一个隐式接口并删除了接口上的一个属性(稍后)。没有警告应该在实现类上删除此属性。

我知道我可以显式地实现接口,但我会尝试绕过它。


编辑:(添加了一个问题)

如何通知/警告/...我可能不再需要实现类中的成员?

0 投票
2 回答
350 浏览

delphi - Delphi - 接口内的接口

我是关于接口的新手。我用谷歌搜索了很多,但我不知道在以下情况下该怎么做。

我创建了多个接口,它们相互使用:

现在我想实现这些接口。

我已经添加了实现。

但我仍然得到“缺少接口方法 IOfferline.GetPart 的实现;”

我不知道为什么。

0 投票
1 回答
1183 浏览

dart - 包含工厂方法时如何访问抽象超类实现?

我有一个带有返回子类实例的工厂的抽象超类。是否可以有一个只在超类中实现的方法?例如,在下面的代码中,是否可以删除 Wind::act()?

删除 Wind::act() 时,会出现关于它丢失的错误。此外,当扩展而不是实现超类时,省略​​子类实现不会导致错误。但是对于工厂方法,扩展不是一种选择。

0 投票
0 回答
128 浏览

java - 运行时检查:一个接口的实现类有多少(Java)

我尝试了一个用于股票技术分析的 Java 库(ta4j)。它提供以下功能:

  • 创建规则: Rule entryRule = new CrossedUpIndicatorRule(shortSma, longSma) .or(new CrossedDownIndicatorRule(closePrice, Decimal.valueOf("800")));
  • 创建策略: Strategy myStrategy = new Strategy(entryRule, exitRule);
  • 规则来源于:public interface Rule
  • 策略是:public class Strategy extends Object

详细的 Javadocs 可以在这里找到。

任务:在我的应用程序中,我想提供可用策略的选择,并提供为规则输入变量的可能性,例如 Decimal.valueOf("400")。

问题:如果我想在运行时自动检测可用策略,如何实现?

解决方案的模糊想法:将策略类更改为接口类,并在运行时使用 java 反射(?)检测已实现的策略。

我的 Java 技能:我对 Java 有很好的基本了解,但我不是专家或专业人士。

你能给我一些提示你将如何解决这个任务吗?

0 投票
2 回答
83 浏览

java - Java接口及其实现

我正在做一个练习,它需要 DogSchool 来实现 PetSchool。我打算做一个在宠物学校注册的动物的数组列表,狗学校需要将狗与其他动物区分开来。狗的特征是他们大喊“哇!哇!”。我已更正。但它仍然无法区分狗和猫。

等级 = 动物

这是接口的代码。

好吧,问题发生在demoTest中:

编译后显示:

哪个更好,但仍然无法区分狗和猫。

0 投票
0 回答
33 浏览

c# - 如何让 VS 在基于接口的所有类中实现默认方法

我有 5 个方法并与之交互。

我想添加第 6 种方法,但我想避免手动将方法添加到我拥有的使用该接口的每个 claas 中。

我可以:

  1. 告诉接口类不必实现。或者
  2. 让 VS 自动为每个派生类添加空方法。

以上任何一种都可能吗?