[英]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
我的理由是,通过显式指定基本接口并在其定义级别上声明类成员,代码将更加清晰,并且是否曾经重构,删除或替换派生接口,就需要大量的重构。严格限制。 但是我是否会错过这种方法?
通过同时实现IFooBase
和IFoo
,您将隐式地向任何人(其他)回顾IFoo
不会从IFooBase
继承的代码,尽管即使IFoo
继承自IFooBase
也是正确的。
但是,如果IFoo
改成也从另一个接口继承, IBar
(接口可以有多个继承,但不是类),你会隐含要求FooClass
,也能实现IBar
,即使FooClass
应该不需要额外的Implements IBar
。
另外,如果您更改了基本接口,那么如果实现类显式实现它,则使事情复杂化,而不是隐式实现它。
我相信,只有实现最派生的接口,而不是所有父接口都需要说些什么。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.