【发布时间】:2013-07-29 19:02:25
【问题描述】:
假设我们有两种服务模式。
ICommon接口
-action1()Mode1Service 继承 ICommonInterface
Mode2Service 继承 ICommonInterface
两者都有相似的功能,所以有一个共同的接口(ICommonInterface)。那么为 ICommonInterface 提供实现的最佳方式是什么,是继承还是组合或任何其他方式?
1) 如果我们更喜欢组合的话,这不是纯粹的继承。
通用逻辑将作为不同的辅助类。 Mode1Service 和 Mode2Service 必须遵守共同契约并调用这些帮助程序来提供实际的实现。
- 帮助类不需要单独使用。
2) 通过继承,我们将拥有一个 AbstractBaseModeService,它继承了由两个模式服务类继承的公共接口。 同样,Mode1Service 和 Mode2Service 除了通用接口外,还有自己的接口。
我觉得继承更好,即使它只提供代码可重用性。有关如何处理此类情况的任何想法。
【问题讨论】:
标签: design-patterns inheritance service composition