1 / 13
文档名称:

Scala解决问题知识分享.pptx

格式:pptx   大小:579KB   页数:13页
下载后只包含 1 个 PPTX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Scala解决问题知识分享.pptx

上传人:坚持 2020/7/9 文件大小:579 KB

下载得到文件列表

Scala解决问题知识分享.pptx

相关文档

文档介绍

文档介绍:Scala解决问题目录Whyscala用scala解决问题MoreaboutscalaQ&APolyglotprogrammingPolyglotprogrammingJavaScalaRubyPythonGroovyC++……HighorderfunctionclassFollowingRule()extendsRulewithPricingService{defapply(ev:Event):Pricing={valoppProducts:List[OppProduct]=getOppproducts()valavailabled=oppProductsfilter{}//有货的availabledmatch{caseList()=>newAbnormalPricing(ev,"withoutopponent")case_=>{vallowPriced:OppProduct=()//最低价的newSubmitPricing(ev,,"following"+lowPriced)}}}}position:1objectRuleFactoryextendsPricingServicewithTracer{abstractclassFilterextends(Pricing=>Pricing)valfollowing=newFollowingRule()valmarkdown=newMarkdownRule()valnegativeProfit:Filter=newFilter{defapply(pricing:Pricing)=pricingmatch{caseSubmitPricing=>if(<getWarehousePrice()){trace("negativeprofit"+pricing)newManualPricing(,,pricing)}elsepricingcase_=>pricing}}position:2valexceed:Filter=newFilter{defchangeCheck(a:Float,b:Float,per:Float):Boolean=(a-b)>a*perdefapply(pricing:Pricing)=pricingmatch{caseSubmitPricing=>if(changeCheck(,,getThreholdPercentage()))newManualPricing(,,pricing)elsepricingcase_=>pricing}}deffollowingRule(event:Event)=followingandThennegativeProfitandThenexceeddefmarkdownRule(event:Event)=position:3abstractclassPricing(ev:Event,p:Float){defevent:Event=evdefprice:Float=pdefprocess}caseclassSubmitPricing(ev:Event,p:Float,ca:String)extendsPricing(ev,p){valcause=caoverridedefprocess={//submittosystem}}caseclassManualPricing(ev:Event,p:Float,so:Pricing)extendsPricing(ev,p){valsource:Pricing=sooverridedefprocess={//recordapply}}Cakepattern(dependencyinjection):1objectPricingextendsPricingServicewithTracer{defapply(ev:Event)={if(isPromoted()){trace("promoted"+ev)}else{valrule=(ev)rule(ev)process}}}Cakepattern(dependencyinjection):2traitPricingService{defgetOppprodu