扩展类以重用单个函数是否合理?


10

我正在为wordpress网站开发一系列的帖子过滤器,并且已经用一个类构建了前四个。

最后两个在作用域上有足够的不同,以使其类中仅共享一个函数(用于产生最终链接的函数)。

在这种情况下或在任何数量的类似假设情况下,扩展原始类以具有该功能是否合理,还是有更好的方法?


我不明白这个问题。用类构建事物是什么意思?这些类是否继承自某些东西?层次结构顶部的类是否已经具有通用功能?
David Thornley

Answers:


19

不,如果两个类的区别如此之大,以至于它们仅共享一个功能,则它们是不可互换的-因此它们将破坏liskov替代原理

仅在合理的情况下才从基类派生。共享单个代码很少是继承的理由:)

在这个特定的示例中,听起来您想通过合成来重新使用该功能...


3
优先考虑组成而不是继承!在大多数情况下,从长远来看,这将使您的生活更简单。
特拉维斯

组成FTW!
back2dos

值得一提的是,我的答案与@Sardathrion基本上相同,我只是链接到相关的发布原则:)
MattDavey 2011年

7

如果类描述中包含单词“ ”,则应将其分为两个(或更多)类。从外观上看,您可以使该函数成为当前类所引用的另一个类的成员。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.