將業務**直接寫死**裡
將單一維度的條件作為引數傳入方法中,方法內根據引數進行業務邏輯實現。
將多個維度的條件作為引數傳入方法中,業務實現需要根據不同的引數處理不同的邏輯。
將業務邏輯封裝為乙個實體類,方法接受實體類為引數,方法內部呼叫實體類的處理邏輯。
呼叫方法時不再建立實體類,而是使用匿名函式的形式替代。
使用lambda表示式替代匿名函式的形式,作為方法的引數,真正實現判斷邏輯引數化傳遞。
目的:針對不同需求對購物車的的商品進行過濾篩選
商品物件
@data
@noargsconstructor
@allargsconstructor
public class goods
商品列舉類
/**
* 商品型別的列舉類
*/public enum goodtypeenum
}
模擬商品資料/**
* 模擬商品資料
*/private static listgoodslist= new arraylist()
};/**
* 獲取商品列表
* @return
*/public listgetgoodslist()
/**
* version 1.0.0
* 找出購物車中所有數碼類產品
* @param goodslist
* @return
*/public listfiltergoodslist(listgoodslist)
}return result;
}
測試
@test
public void version1()
/**
* 根據型別找出購物車中對應型別的產品
* @param goodslist
* @return
*/public listfiltergoodslist(listgoodslist,goodtypeenum goodtype)
}return result;
}
測試
@test
public void version2()
/**
* 支援通過商品型別或者總價來過濾商品
* @param goodslist
* @param goodtype
* @param totalprice
* @param goodtypeorprice - true:根據商品型別 false:根據商品總價
* @return
*/public listfiltergoodslist(listgoodslist,goodtypeenum goodtype,double totalprice,boolean goodtypeorprice)
}return result;
}
測試
@test
public void version3()
/**
* 根據不同的goods判斷標準,對商品列表進行過濾
* @param goodslist
* @param goodspredicate(或者predicate介面) - 不同的商品判斷標準
* @return
*/public listfiltergoodslist(listgoodslist,goodspredicate goodspredicate)
}return result;
}
/**
* goods判斷標準策略介面
*/public inte***ce goodspredicate
/**
* goods商品型別為圖書型別的判斷標準
*/public class booksgoodspredicate implements goodspredicate
}
測試
@test
public void version4()
考慮到判斷標準多樣化,沒必要為標準寫乙個類,可以使用匿名內部類根據情況直接判斷
@test
public void version5()
});system.out.println(json.tojsonstring(goods,true));
}
還可以進一步優化,使用lambda表示式
@test
public void version6()
Scala函式式程式設計(一)
package pxl.basics import sun.security.util.length 使用alt 可以自動補全 def 後面就可以看成函式 函式是一等公民,可以像變數一樣被傳遞,被賦值 並且函式和變數之間可以賦值傳遞,可以把函式當成乙個變數 函式可以被序列化和反序列化 1.函式可以在...
Kotlin 函式式程式設計 一
今天開始學習kotlin的第二大思想,函式式程式設計。函式式程式設計在中一切都是函式。核心概念 函式和其它資料型別是一樣的,可以作為其它函式的引數傳入,也可做為函式的返回值。使用表示式,不用語句。高階函式 乙個函式可做為另乙個函式的引數和返回值 無 函式執行過程會返回乙個結果,不會修改外部變數 函式...
學習一 函式式程式設計
函式式程式設計,縮寫 fp,是一種程式設計風格,與物件導向 面向過程等程式設計正規化並列。函式式程式設計中的函式不是 function,而是 y 與 x 的關係這一數學層面中的函式關係。相同的輸入始終都等於相同的輸出。函式式程式設計用來描述 函式 之間的對映。例 非函式式 let num1 1 le...