一 函式式程式設計

2022-09-06 14:33:19 字數 2497 閱讀 1072

將業務**直接寫死**裡

將單一維度的條件作為引數傳入方法中,方法內根據引數進行業務邏輯實現。

將多個維度的條件作為引數傳入方法中,業務實現需要根據不同的引數處理不同的邏輯。

將業務邏輯封裝為乙個實體類,方法接受實體類為引數,方法內部呼叫實體類的處理邏輯。

呼叫方法時不再建立實體類,而是使用匿名函式的形式替代。

使用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...