我知道-我不能,但是。

我希望所有将实现我的接口的类都具有相同的所有者(通常在构造函数中定义)。最佳做法是什么?

我应该使用一些基本抽象类还是类似的东西?

最佳答案

接口定义了实现者和使用者之间的契约。

该合同的一部分由编译器强制执行。例如,该接口的所有实现都具有特定名称的必需功能,这些功能带有特定参数。

但是接口的另一部分没有由编译器强制执行。这是接口文档中描述的合同部分。您可以决定足以告诉所有实施者必须遵守哪些规则。许多图书馆都采取这种立场。 Windows API是一个突出的示例。

如果您对通过代码强制实施不满意,那么界面将无济于事。您需要一些能够表达代码约束的东西,在这种情况下,这将需要实现。这意味着您将需要使用一个类。一个(几乎)抽象基类可以完成它。该类的唯一具体部分将强制所有权约束。该类的其余部分将是一系列抽象的虚拟方法。从Delphi关键字的意义上来说,这不是一个接口。但是,它是语义上的接口。

10-08 04:48