问题标签 [interface]

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 回答
244 浏览

c# - 可以为接口引用定义 == 的行为吗?

如果接口继承了 IEquatable,则实现类可以定义 Equals 方法的行为。是否可以定义 == 操作的行为?

通过比较它们的值来检查两个 IFoo 引用是否相等:

是否可以if (X == Y)在 Foo 上使用 Equals 方法?

0 投票
2 回答
247 浏览

.net - .config 到构造函数的技巧?

我正在做一个快速的项目来监控/处理数据。本质上,这只是监视器、时间表和处理器。监视器使用计划检查数据(ftp、本地、imap、pop 等)并将新数据发送到处理器。它们都有接口。

我正在尝试找到一种理智的方式来使用 config 来配置每个监视器使用的调度/处理器。这很容易:

我正在苦苦挣扎的是配置任何旧监视器/时间表/处理器的最佳方法是什么。一方面,可以实现构造函数参数或属性(不采用任何语法):

另一种解决方案是每个接口中的工厂方法,它将自定义配置作为参数:

我见过有人同时使用这两种方法。你喜欢哪个?将配置映射到构造函数时有什么技巧吗?

我对 DI 是否能融入这个烂摊子感到有些不安。最后,这将是每个监视器实例的一组绑定,除了配置可以覆盖的默认值之外,这似乎毫无意义。

0 投票
10 回答
1715 浏览

oop - 同时拥有抽象类和接口有什么好处吗?

我从一个名为 ILogin 的通用接口开始。这些接口要求您实现两个属性:UserID 和 Password。我有许多实现此接口的登录类型类。随着我的项目越来越大,我发现许多类都重复了 UserID 和 Password 代码。现在我决定我需要一个基本的登录类。

创建一个实现 ILogin 接口的抽象基本登录类并让我的所有具体类只从抽象类继承并在必要时覆盖是否合适?本来我以为这样不会有问题的。然后我开始认为 ILogin 可能是不需要的,因为它可能只会由我的抽象类实现。

保留抽象类和接口是否有好处?

谢谢!

0 投票
3 回答
12163 浏览

c# - C#:如何使用字典实施 ICollection> 没有 Add(KeyValuePair)?

看起来System.Collections.Generic.Dictionary<TKey, TValue>,它显然实现ICollection<KeyValuePair<TKey, TValue>>了,但没有所需的“ void Add(KeyValuePair<TKey, TValue> item)”功能。

这也可以在尝试Dictionary像这样初始化时看到:

失败了

方法'Add'没有重载需要'1'参数

为什么呢?

0 投票
14 回答
850 浏览

oop - 继承和接口

这在某种程度上是这个问题的后续问题

假设我有一个继承树如下:

为这些类中的一个定义接口是否有好处?例子:

我可以看到也许其他类(如Chevy)想要实现IcarorIFord甚至IMustang可能,但可能不是IMustangGT因为它是如此具体。在这种情况下,接口是多余的吗?

另外,我认为任何想要实现的类IFord都肯定希望通过继承来使用它的一个继承,Ford以免重复代码。如果这是给定的,那么实施的好处是什么IFord

0 投票
3 回答
3719 浏览

c - 你如何使用 Ruby/DL?这是正确的吗?

我正在尝试编写 RSPEC(ruby 风格的 BDD)和 Windows 应用程序之间的接口。应用程序本身是用一种晦涩难懂的语言编写的,但它有一个 C API 来提供访问权限。我已经使用 Ruby/DL,但即使是最基本的 DLL 方法调用也很难工作。这是我目前在一个名为 gt4r.rb 的文件中所拥有的:

到目前为止,我的阅读表明这就是我所需要的,所以我写了一个 RSPEC 示例:

而运行时...

返回值 (13) 是一个实际的返回代码,表示错误,但是当我尝试将 gTD_get_error_message 调用添加到我的 RSPEC 时,我无法让参数正常工作。

我是否朝着正确的方向前进,任何人都可以指出我可以尝试的下一件事吗?

谢谢,布雷特


对此问题的跟进,显示了当我尝试从目标库中获取错误消息时失败的部分:

我希望在@msg 中返回错误消息,但是运行时我得到以下信息:

如果我使用符号 (:msg) 来代替:

显然我错过了一些关于在 ruby​​ 和 C 之间传递参数的东西,但是什么?

0 投票
6 回答
109861 浏览

php - 检查实例的类是否实现了接口?

给定一个类实例,是否可以确定它是否实现了特定接口?据我所知,没有内置函数可以直接执行此操作。我有哪些选择(如果有)?

0 投票
2 回答
1439 浏览

java - 我可以使用 jmock 替换工厂返回的实现吗?

我有一个返回接口的工厂FormatService

是否可以模拟这个工厂,以便它在我们的单元测试中 始终返回FormatService-的存根实现?FormatServiceStub

0 投票
3 回答
22842 浏览

visual-studio - 在 Visual Studio 中查看多个文件

我刚刚意识到 Office 2007 现在默认显示多个页面。我终于可以利用我买的那台巨大的显示器了。

Visual Studio 是否有类似的功能?

类似“查看->两页”的东西

0 投票
3 回答
2887 浏览

c# - 为什么要使用显式接口实现来调用受保护的方法?

codeplex中浏览 ASP.NET MVC 源代码时,我发现有一个类显式实现接口是很常见的。显式实现的方法/属性然后调用另一个具有相同名称的“受保护的虚拟”方法/属性。

例如,

我现在确定这种编程有什么好处。对我来说,我更喜欢只隐式实现接口 IHttpHandler。

我猜作者只是不希望MvcHandler有一个公共属性IsResuable。属性IsReusable只能在MvcHandler的实例被视为IHttpHandler时使用。不过,我不确定作者为什么会这样。

有人知道这种接口实现方式的更多好处吗?