中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

做網(wǎng)站數(shù)據(jù)庫及相關(guān)配置小程序搭建

做網(wǎng)站數(shù)據(jù)庫及相關(guān)配置,小程序搭建,wordpress oss圖片,如何看配色網(wǎng)站策略模式的定義 策略設(shè)計模式是一種行為設(shè)計模式。當在處理一個業(yè)務(wù)時,有多種處理方式,并且需要再運行時決定使哪一種具體實現(xiàn)時,就會使用策略模式。 策略模式的類圖: 策略模式的實現(xiàn) 在支付業(yè)務(wù)中,有三種付款方式&…

策略模式的定義

策略設(shè)計模式是一種行為設(shè)計模式。當在處理一個業(yè)務(wù)時,有多種處理方式,并且需要再運行時決定使哪一種具體實現(xiàn)時,就會使用策略模式。

策略模式的類圖:
在這里插入圖片描述

策略模式的實現(xiàn)

在支付業(yè)務(wù)中,有三種付款方式,程序運行時使用哪種方式由用戶選擇,根據(jù)用戶選擇執(zhí)行不同的邏輯。

  1. 首先,我們需要將支付方式這一行為抽象為一個策略接口,代表支付方式的抽象。
public interface PaymentStrategy {public void payment(BigDecimal amount);}
  1. 然后我們再針對需要支持的三種支付方式建立對應(yīng)的策略實現(xiàn)類。

銀行卡支付策略

public class CreditPaymentStrategy implements PaymentStrategy{@Overridepublic void payment(BigDecimal amount) {System.out.println("使用銀行卡支付" + amount);// 去調(diào)用網(wǎng)聯(lián)接口}
}

微信支付策略

public class WechatPaymentStrategy implements PaymentStrategy{@Overridepublic void payment(BigDecimal amount) {System.out.println("使用微信支付" + amount);// 調(diào)用微信支付API}
}

支付寶支付策略

public class AlipayPaymentStrategy implements PaymentStrategy {@Overridepublic void payment(BigDecimal amount) {System.out.println("使用支付寶支付" + amount);// 調(diào)用支付寶支付API}
}
  1. 然后重新實現(xiàn)我們的支付服務(wù)PaymentService。
public class PaymentService {/*** 將strategy作為參數(shù)傳遞給支付服務(wù)*/public void payment(PaymentStrategy strategy, BigDecimal amount) {strategy.payment(amount);}
}

我們將支付策略作為參數(shù)傳遞給支付服務(wù),在支付服務(wù)中只需要按照運行時傳的支付策略對象進行支付就可以了。

我們來測試一下使用策略模式之后的代碼。

public class StrategyTest {public static void main(String[] args) {PaymentService paymentService = new PaymentService();// 使用微信支付paymentService.payment(new WechatPaymentStrategy(), new BigDecimal("100"));//使用支付寶支付paymentService.payment(new AlipayPaymentStrategy(), new BigDecimal("100"));}
}

運行結(jié)果:

在使用了策略模式之后,在我們的支付服務(wù)PaymentService中便不需要寫復(fù)雜的if…else,如果需要新增加一種支付方式,只需要新增一個新的支付策略實現(xiàn),這樣就滿足了開閉原則,并且對其他支付方式的業(yè)務(wù)邏輯也不會造成影響,擴展性很好。

JDK中使用策略模式的例子

在JDK中最經(jīng)典的使用策略模式的例子就是Collections.sort(List<T> list, Comparator<? super T> c)方法,這個方法接受一個比較器Compartor參數(shù),客戶端在運行時可以傳入一個比較器的實現(xiàn),sort()方法中根據(jù)不同實現(xiàn),按照不同的方式進行排序。

總結(jié):

  • 如果在一個系統(tǒng)里面有許多類,它們僅僅在行為上有區(qū)別,那么使用策略模式可以動態(tài)地讓一個對象在許多行為中選擇一種行為;
  • 一個系統(tǒng)需要動態(tài)地在幾種算法中選擇一種;
  • 如果一個對象有很多的行為,如果不用恰當?shù)哪J?#xff0c;這些行為就只好使用多重的條件選擇語句來實現(xiàn)。
http://www.risenshineclean.com/news/59808.html

相關(guān)文章:

  • 做淘寶客如何建自己的網(wǎng)站營銷說白了就是干什么的
  • 做網(wǎng)站運營難嗎吸引人的微信軟文
  • 東莞哪里的網(wǎng)站建設(shè)效果好注冊網(wǎng)站免費注冊
  • 華為網(wǎng)站開發(fā)流程怎么seo快速排名
  • 天津做網(wǎng)站要多少錢北京seo服務(wù)銷售
  • 網(wǎng)站如何優(yōu)化排名百度高級搜索頁面
  • wordpress建站要用模板嗎企業(yè)網(wǎng)站seo診斷工具
  • 做不銹鋼網(wǎng)站網(wǎng)絡(luò)營銷ppt講解
  • 電子商務(wù)網(wǎng)站建設(shè)的成本分析如何做營銷活動
  • 怎么看別人網(wǎng)站怎么做的優(yōu)化經(jīng)典軟文案例100例簡短
  • 建設(shè)銀行網(wǎng)站百度一下百度平臺app下載
  • SEO優(yōu)化之如何做網(wǎng)站URL優(yōu)化sem廣告
  • last login wordpress貴港seo關(guān)鍵詞整站優(yōu)化
  • wordpress電影插件seo還有哪些方面的優(yōu)化
  • 龍巖網(wǎng)站設(shè)計培訓百度推廣一個點擊多少錢
  • 中英文切換網(wǎng)站怎么做線上銷售水果營銷方案
  • 批量上傳產(chǎn)品WordPress百度seo最成功的優(yōu)化
  • 網(wǎng)站關(guān)鍵詞優(yōu)化排名網(wǎng)頁設(shè)計框架圖
  • 網(wǎng)絡(luò)推廣公司盈利模式seo分析師招聘
  • 各大搜索引擎提交網(wǎng)站入口大全網(wǎng)站的營銷推廣
  • 如何做好網(wǎng)站管理工作女教師遭網(wǎng)課入侵視頻大全
  • 寧波建筑公司排名無錫seo
  • 網(wǎng)頁網(wǎng)站制作公司學電腦辦公軟件培訓班
  • 之力seo網(wǎng)站關(guān)鍵詞優(yōu)化工具
  • 苗木網(wǎng)站模板seo管理軟件
  • 義烏商城集團的網(wǎng)站建設(shè)站長之家ip地址查詢
  • 廣州建外貿(mào)網(wǎng)站什么企業(yè)需要網(wǎng)絡(luò)營銷和網(wǎng)絡(luò)推廣
  • 樂云seo網(wǎng)站建設(shè)公司seo搜索引擎優(yōu)化就業(yè)前景
  • 什么網(wǎng)站專做二手名表做關(guān)鍵詞優(yōu)化的公司
  • 佛山精品網(wǎng)站建設(shè)優(yōu)化大師官方正版下載