AccountController不能同时扩展BaseAccount和BaseController。如果我将所有BaseAccount或BaseController方法都设为空,则可以有一个接口,但是如果我在两个不同的地方实现该接口,也就是说,我在两个不同的地方签订了实现一个方法的合同,则将有重复的代码。接口是否通过代码重复解决DDD?

interface A {
    function doStuff() {
    }
}

class B implements A {
    function doStuff() {
        // a code
    }
}

class C implements A {
    function doStuff() {
        // the same code!!!
    }
}

最佳答案

一点点都与您的上一次困惑相混淆,但是如果您想要多重继承,则需要这样做:

AccountController扩展了BaseAccount,而BaseAccount扩展了BaseController

BaseController
  |
BaseAccount
  |
AccountController


使用此方法将使您能够使用$ this从AccountController访问BaseAccount和BaseController的所有成员函数。

关于java - 接口(interface)是否通过代码重复解决DDD?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1679858/

10-10 21:48