php cdi_CDI和lambda的策略模式
生活随笔
收集整理的這篇文章主要介紹了
php cdi_CDI和lambda的策略模式
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
php cdi
策略設(shè)計(jì)模式在運(yùn)行時(shí)動(dòng)態(tài)選擇一種實(shí)現(xiàn)算法,一種策略。 該模式可用于根據(jù)情況選擇不同的業(yè)務(wù)算法。
我們可以將不同的算法實(shí)現(xiàn)定義為單獨(dú)的類。 或者,我們利用Java SE 8 lambda和函數(shù),這些lambda和函數(shù)在此處用作輕量級(jí)策略實(shí)現(xiàn)。
CDI能夠注入?yún)?shù)化類型:
public class Greeter {@InjectFunction<String, String> greetingStrategy;public String greet(String name) {return greetingStrategy.apply(name);} }CDI生產(chǎn)者根據(jù)動(dòng)態(tài)邏輯創(chuàng)建并公開問候語。 實(shí)際策略由Function類型表示并動(dòng)態(tài)選擇:
public class GreetingStrategyExposer {private final Function<String, String> formalGreeting = name -> "Dear " + name;private final Function<String, String> informalGreeting = name -> "Hey " + name;@Producespublic Function<String, String> exposeStrategy() {// select a strategy...return strategy;} }翻譯自: https://www.javacodegeeks.com/2018/04/strategy-pattern-with-cdi-and-lambdas.html
php cdi
總結(jié)
以上是生活随笔為你收集整理的php cdi_CDI和lambda的策略模式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 朝着理想坚实迈进_坚实原则:开放/封闭原
- 下一篇: 微信把你拉黑了怎么还能联系上