鏈式調用方法的實現原理和方法


1.什么是鏈式調用?
Person person = new Person().setName(fog)
                            .setAge(18)
                            .setSex(man)
                            .setJob(software engineer);

  

2.優勢和好處

有以上的代碼,好處顯而易見:代碼量大幅度減少,邏輯集中清晰明了,且易於查看和修改。

 

3.背后的實現原理

一般而言,我們在設置set,get的方法的時候,在對應的方法里都是返回的void。

從某種意義上來說,代碼的返回值是一個必須要執行的步驟,直接返回void是一種浪費,而我們實現鏈式調用的關鍵步驟和原理就是這個返回值的不同。

public class Person {
    private String name;
    private String sex;
    private String job;
    private int age;

    public Person setJob(String job) {
        this.job = job;
        return this;
    }

    public Person setName(String name) {
        this.name = name;
        return this;
    }

    public Person setSex(String sex) {
        this.sex = sex;
        return this;
    }

    public Person setAge(int age) {
        this.age = age;
        return this;
    }
}

  

解析:

開始的那一串鏈式設置屬性的實現代碼,正是上面的形式。

對比而言,就是返回值的不同,一個是void,一個是this。

 

而實現連釋電用的邏輯就是:

1.對於第一個設置屬性的方法而言,新建一個對象的時候,正常的調用其方法,如果這個方法返回的是this,意味着將這個設置過屬性的對象返回

2.那么對於第二個方法而言,是一個設置方法返回的是已經設置過屬性的對象,而這個返回的對象也是有對應的屬性設置方法的,這樣一來,就相當於對一個創建的對象調用其屬性設置方法,並且將這個對象返回

3.以此類推,上一個方法返回對象,是下一個調用方法的執行對象,依次執行下去,就成了鏈式調用方法

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM