在我們編寫代碼過程中聽到過很多說法
如:面向切面編程,函數式編程,面向對象編程,泛式編程等等
接着我來說下鏈式編程
普通:
1:維護性強
2:對方法的返回類型無要求
3:對程序員的業務要求適中
鏈式:
1:編程性強
2:可讀性強
3:代碼簡潔
4:對程序員的業務能力要求高
5:不太利於代碼調試
在java中StringBuilder已經實現了鏈式的寫法
StringBuilder builder = new StringBuilder();
builder.append("blake").append("bob").append("alice").append("linese").append("eve");
是不是很方便呢!
怎麼實現呢,其實就是在設置的返回當前的對象
jdk StringBuilder的寫法
@Override
public StringBuilder append(String str) {
super.append(str);
return this;
}
試着按這種方法一個例子如下:
public class Apple {
private double height;
private String color;
private boolean flag;
public double getHeight() {
return height;
}
public Apple setHeight(double height) {
this.height = height;
return this;// return 當前對象
}
public String getColor() {
return color;
}
public Apple setColor(String color) {
this.color = color;
return this;// return 當前對象
}
public boolean isFlag() {
return flag;
}
public Apple setFlag(boolean flag) {
this.flag = flag;
return this;// return 當前對象
}
public Apple() {
}
@Override
public String toString() {
return "Apple{" +
"height=" + height +
", color='" + color + '\'' +
", flag=" + flag +
'}';
}
@Override
public boolean equals(Object obj) {
return super.equals(obj);
}
public static void main(String[] args) {
Apple apple = new Apple();
apple.setColor("red").setFlag(true).setHeight(22.56);//鏈式
System.out.println(apple);
}
}
打印結果如下:
Apple{height=22.56, color='red', flag=true}
結果如我們預料中的一樣