JAVA中實現鏈式操作(方法鏈)的簡單例子
在使用jQuery時候,我們經常會看到或者使用到方法鏈,例如:
$("#p1").css("color","red").slideUp(2000).slideDown(2000);
這段代碼的意思是選擇器選擇id為p1的html標簽,顏色變紅,之后slideup,再slidedown。
自然是可以將這幾個方法分開寫,但是不分開的話不僅有很好的易讀性,代碼量也會有減少,那么何樂而不為?
這種調用函數的方式在jQuery中稱為“Chaining”,原理也很簡單:能夠chaining的方法調用后返回對象本身即可。
下面用java代碼做個演示:
不使用chaining:
Persion.java:
public class Persion {
private int id;
private String name;
private String phoneNumber;
private String address;
public Persion() {
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
public void setAddress(String address) {
this.address = address;
}
public void printId() {
System.out.println(this.id);
}
public void printName() {
System.out.println(this.name);
}
public void printPhoneNumber() {
System.out.println(this.phoneNumber);
}
public void printAddress() {
System.out.println(this.address);
}
}
Test.java:
public class Test {
public static void main(String[] args) {
Persion persion1 = new Persion();
persion1.setId(3);
persion1.setName("John");
persion1.setPhoneNumber("1111111");
persion1.setAddress("US");
persion1.printId();
persion1.printName();
persion1.printPhoneNumber();
persion1.printAddress();
}
}
使用chaining:
Persion.java:
public class Persion {
private int id;
private String name;
private String phoneNumber;
private String address;
public Persion() {
}
public Persion setId(int id) {
this.id = id;
return this;
}
public Persion setName(String name) {
this.name = name;
return this;
}
public Persion setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
return this;
}
public Persion setAddress(String address) {
this.address = address;
return this;
}
public Persion printId() {
System.out.println(this.id);
return this;
}
public Persion printName() {
System.out.println(this.name);
return this;
}
public Persion printPhoneNumber() {
System.out.println(this.phoneNumber);
return this;
}
public Persion printAddress() {
System.out.println(this.address);
return this;
}
}
Test.java:
public class Test {
public static void main(String[] args) {
Persion persion1 = new Persion();
persion1.setId(3).setName("John")
.setPhoneNumber("1111111").setAddress("US");
persion1.printId()
.printName()
.printPhoneNumber()
.printAddress();
}
}
好詭異的感覺~哈哈!
相關文章
Spring+SpringMVC+MyBatis整合詳細教程(SSM)
Spring是一個開源框架,Spring是于2003 年興起的一個輕量級的Java 開發(fā)框架。這篇文章主要介紹了Spring+SpringMVC+MyBatis整合詳細教程(SSM),需要的朋友可以參考下2017-10-10
SpringCloud中的熔斷監(jiān)控HystrixDashboard和Turbine示例詳解
HystrixDashboard是用于實時監(jiān)控Hystrix性能的工具,展示請求響應時間和成功率等數據,本文介紹了如何配置和使用HystrixDashboard和Turbine進行熔斷監(jiān)控,包括依賴添加、啟動類配置和測試流程,感興趣的朋友一起看看吧2024-09-09
SpringData JPA Mongodb查詢部分字段問題
這篇文章主要介紹了SpringData JPA Mongodb查詢部分字段問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08

