级联和链接有什么区别

dan*_*n89 6 javascript c# java jquery

我刚刚从一个关于级联的论坛中找到。问题是在便便中级联意味着什么。我试图找到 google 答案,也试图找到其他一些关于 if 但我不能的 stackoverflow 线程。我只是找到这个链接http://en.wikipedia.org/wiki/Method_cascading

我知道什么是链接,我在 javascript、jquery 和其他语言中使用过它,但我无法理解链接和级联之间的区别。有谁能够帮助我?或者有人可以提供一些关于此的有用链接吗?

Sim*_*ead 4

您链接的维基百科页面上的定义非常清楚:

给定一个方法调用 ab(),执行该调用后,方法级联会将此表达式计算为左侧对象 a(如果发生变化,则使用其新值),而方法链接会将此表达式计算为右侧对象。

这意味着,a.b()返回一个具有方法级联的变异a实例。a.b()返回b()与方法链接不同的东西。

所以,这是方法级联:

class YourClass {
    public YourClass b() {
        // do stuff
        return this;
    }

    public YourClass c() {
        // do stuff
        return this;
    }
}
Run Code Online (Sandbox Code Playgroud)

..这使得:yourClass.b().c();

..这是方法链:

class YourClass {
    public SomeOtherObject b() {
        // do stuff
        return new SomeOtherObject(this);
    }
}

class SomeOtherObject {
    private YourClass _owner;

    public SomeOtherObject(YourClass owner) {
        _owner = owner;
    }

    public void c_onOtherObject() {
    }
}
Run Code Online (Sandbox Code Playgroud)

..这使得:yourClass.b().c_onOtherObject();

编辑:我回滚了之前的编辑。看来上面的内容是正确的,并且术语没有错误地翻转。