Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 过度委托设计_Java_Design Patterns_Delegates - Fatal编程技术网

Java 过度委托设计

Java 过度委托设计,java,design-patterns,delegates,Java,Design Patterns,Delegates,我在我们的代码中看到了很多这种设计模式。你觉得合理吗 interface A { void doSmth(); } interface B extends A { } class C implements A { A a; public C(A a) { this.a = a; } @Override public void doSmth() { } } class D implements B { A

我在我们的代码中看到了很多这种设计模式。你觉得合理吗

interface A {
    void doSmth();
}

interface B extends A {

}

class C implements A {
    A a;

    public C(A a) {
        this.a = a;
    }

    @Override
    public void doSmth() {

    }
}

class D implements B {
    A a;

    public D() {
        a = new C(this);
    }

    @Override
    public void doSmth() {
        a.doSmth();
    }
}
这似乎是一种“组合”或“策略”模式。使用IoC,你通过了实际负责做某事的课程


在不知道软件的用途和需求的情况下,给您一个答案并不容易,但在任何情况下,依赖这些模式都是一个很好的设计。

您希望实现什么?某些设计模式的使用通常是由特定的动机/需求驱动的。我认为你应该提供一个更好的例子。。。