0

我的接口是用一些方法和属性定义的

Public Interface ITouchInterface
   'Inherits System.Windows.Controls.Canvas ' This is the problem

   'Methods and Properties

End Interface

我了解我遇到的问题,该接口只能从另一个接口继承,因为System.Windows.Controls.Canvas它不是我不能从它继承的接口。

我的实现接口的类依赖于画布的属性来运行。

目前我的接口实现如下所示:

Public Class TouchClass
    Inherits Canvas
    Implements ITouchInterface

    'Implementation
End Class

基本上,为了与我的应用程序的其余部分一起工作,我需要接口来指定从画布继承。应用程序的其余部分需要一个类型的对象ITouchInterface,但是在我当前的实现中,应用程序在实例化一个类之前不知道画布属性。

例如,我声明了一个ITouchInterface. 然后用实现接口的类填充它。现在我需要遍历这个列表并获取每个项目的宽度,但宽度是画布的一个属性,目前无法访问。

是否存在我不知道的画布界面或是否有任何替代解决方案?

4

2 回答 2

1

你可以添加一个抽象类,在它之间扮演你的接口角色。当然,这会导致更多的耦合......

这正是你想要的结果:你可以有几个不同的实现 ITouchInterface 并从画布继承的类

Public Interface ITouchInterface

End Interface

Public MustInherit Class TouchCanvasBase
    Inherits Canvas
    Implements ITouchInterface

End Class

Public Class TouchCanvas
    Inherits TouchCanvasBase

    'specific implementation

End Class
于 2013-01-18T09:35:04.957 回答
0

继承仍然意味着是一个,所以你说你的 ITouchInterface是一个画布。这听起来不对。

正如评论中所说,改为查看组合,这意味着有一个. 所以你的触摸界面有一个画布。这听起来已经更好了,但似乎仍然不完全正确。重新思考您的设计,看看 ITouchInterface 的客户真正需要什么。他们需要整个画布,还是只需要一些方法来绘制它,您可以轻松地将它们放在另一个界面中?

于 2013-01-18T09:40:01.603 回答