繁体   English   中英

实现派生接口的基本成员

[英]Implementing base members of a derived interface

假设我有以下接口:

Public Interface IFooBase
    Sub Bar()
End Interface

Public Interface IFoo
    Inherits IFooBase

    Sub Zim()
End Interface

我了解实现IFoo的类隐式实现IFooBase ,并且可以通过派生的接口指定所有IFooBase成员(例如Public Sub Bar() Implements IFoo.Bar ),并且不会出现问题,并且如果类指定它,则不会给出错误实现基本接口和派生接口。

那么,这里的最佳实践是什么? 我的直觉是该类应按以下方式实现:

Public Class FooClass
    Implements IFooBase, IFoo

    Public Sub Bar() Implements IFooBase.Bar
    End Sub

    Public Sub Zim() Implements IFoo.Zim
    End Sub
End Class

我的理由是,通过显式指定基本接口并在其定义级别上声明类成员,代码将更加清晰,并且是否曾经重构,删除或替换派生接口,就需要大量的重构。严格限制。 但是我是否会错过这种方法?

通过同时实现IFooBaseIFoo ,您将隐式地向任何人(其他)回顾IFoo不会从IFooBase继承的代码,尽管即使IFoo继承自IFooBase也是正确的。

但是,如果IFoo改成也从另一个接口继承, IBar (接口可以有多个继承,但不是类),你会隐含要求FooClass ,也能实现IBar ,即使FooClass应该不需要额外的Implements IBar

另外,如果您更改了基本接口,那么如果实现类显式实现它,则使事情复杂化,而不是隐式实现它。

我相信,只有实现最派生的接口,而不是所有父接口都需要说些什么。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM