因此,您已经有了一个接口和一个实现接口中方法的子集的抽象类。您还拥有一些继承抽象类并提供抽象类未提供的方法的实现的类。
那么这里的最佳实践是什么?我正在谈论这样的问题:
1)抽象类应该实现接口还是它的子类?每节课都应该吗?在我看来,抽象类就应该如此。当然,所有的类都可以实现该接口,但这似乎是多余的,因为抽象的子类将“继承”该接口,因为它们扩展了抽象类。
2)考虑到抽象类实现了接口的部分内容,它是否也应该为它没有实现的方法声明抽象方法?在我看来,这是正确的,但在某种程度上,这似乎是多余的,因为抽象的子级将需要实现这些方法才能进行编译。
那么您对最佳实践的看法是什么?问题归结为:我们有一个接口,它定义了我们希望某些类执行的操作,我们有接口中定义常见行为的方法的子集,并且我们有几种不同的方法来定义不常见的行为。布置这个问题的最佳方式是什么?
这里应该对您有所帮助的原则是 DRY:不要重复自己(http://en.wikipedia.org/wiki/Don%27t_repeat_yourself http://en.wikipedia.org/wiki/Don%27t_repeat_yourself).
在这种情况下,DRY 意味着您不应该做不必要的工作。
因此,对于您的第一个问题,抽象类应该实现接口,因为它可以使您免于在每个具体类中重复“implements X”子句。
至于第二个问题,在实现它的抽象类中重复接口方法是没有意义的。这是多余的工作。此外,当接口演变/更改时,您将需要更改抽象类中的对应(抽象)方法,这是一个令人头痛的问题。在某些时候,您会错过更新某些方法,而具体类将需要徒劳地实现这些方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)