Java 中的功能構建器方法

https://glaforge.dev/posts/2024/01/16/java-functional-builder-approach/

在 Java 中,具有豐富屬性的複雜對象,建構者是一種經典模式。建構者有助於減少需要創建的構造函數數量,特別是當不是所有屬性都需要設置時。然而,使用 newBuilder() / build()方法組合時,建構者有時會顯得冗長。

Go 語言的功能建造者方法,雖然不是 Java 建構者的常見實踐方式,但是值得重複考慮。這種方法的主要概念是,類的建構函數接受函數選項作為變數參數,並能夠修改正在構建的實例。

可以通過 Java 的 lambda 表達式將這種方法轉換為 Consumer of SomeModel。此方法的優勢是:消除 verbose newBuilder() / build()組合;感覺不像真正使用建構者;具有命名參數的感覺;能夠以任何順序傳遞參數;在所有變異器方法調用之後,可以在構造函數中放置驗證規則。應注意的是,這種方法非常值得一試,並應恰當地進行文件化。

via Guillaume Laforge

January 17, 2024 at 12:20AM

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *