0

我在获取查询字符串值的页面上有一个属性,我需要它出现在所有相关页面上。这些页面已经继承了一个基类,我不想要这里的属性,因为不是所有继承这个基类的东西都需要这个特定的属性。

我的想法是使用此属性创建一个接口,并让需要该属性的每个页面都实现此接口。

这是一种好习惯,还是应该将基类继承到另一个仅具有此属性的类中,然后让所有页面继承此属性而不是基类?

谢谢

4

3 回答 3

2

我假设属性的实现在所有需要它们的页面上都是相同的?如果你使用一个接口,所有的页面都需要实现这个,这会导致大量的复制/粘贴代码。编写某种提供程序类,您可以将页面实例(如果需要)传递给它并使用此类来获取属性不是更好吗?我认为您最好在这里使用组合而不是继承,因为如果您创建另一个基类,您将使用另一个基类扩展您的页面层次结构。

于 2013-09-06T10:02:31.207 回答
0

我想说这无关紧要,但我更喜欢另一个继承级别,因为您只需编写一次代码。使用界面,您会更加灵活,也许在某些情况下您不需要自动属性,而是检查 null 或类似的东西。

因此,如果它始终是相同的属性,则使用继承的第二个基类,如果您在 getter 或 setter 中有不同的检查,则使用接口。

于 2013-09-06T10:00:36.760 回答
0

接口不需要您复制代码!您可以使用委托。这类似于接受的答案,除了一种方式。接口可用于向其他类公开契约,允许它们以一致且强大的方式与您的类交互。那么一个关键问题就变成了,外部代码是否想要“知道”您的 Form 是否具有该功能?

委托而不是继承

于 2013-09-06T14:00:43.413 回答