1
它是不是更像工廠?它甚至沒有build()
方法,並且似乎沒有基於方法調用的狀態。爲什麼javax.persistence.criteria.CriteriaBuilder是一個'Builder'?
它是不是更像工廠?它甚至沒有build()
方法,並且似乎沒有基於方法調用的狀態。爲什麼javax.persistence.criteria.CriteriaBuilder是一個'Builder'?
所有方法返回Expression
或Predicate
。您可以鏈接呼叫,同時這樣做,可以爲您的查詢建立最終標準。
該條件包含您缺少的狀態。
Expression
和Predicate
是複雜的對象,從多個來源構建,包括其他謂詞。我沒有看到build()
函數有一個構建器模式的必要性。
正如你可以在評論中引用的優秀摘要(謝謝@Mike Nakis)一樣閱讀,構建器模式本身引用了在多步創建過程中調用鏈接或抽象。
如果您考慮複雜的創建用例,您可以看到創建的對象是Criteria
。要創建,它需要約束。這些使用CriteriaBuilder
構建。
絕對如此。那爲什麼它被稱爲建造者? – doctorgester
@doctorgester因爲有人決定這樣稱呼它! – luk2302
@doctorgester單詞生成器並非嚴格保留用於Builder創建模式的純實現。 – plalx