日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Java策略模式實(shí)現(xiàn)簡單購物車功能

瀏覽:217日期:2022-08-25 17:54:28

策略模式是一種行為模式。用于某一個具體的項(xiàng)目有多個可供選擇的算法策略,客戶端在其運(yùn)行時根據(jù)不同需求決定使用某一具體算法策略。

策略模式也被稱作政策模式。實(shí)現(xiàn)過程為,首先定義不同的算法策略,然后客戶端把算法策略作為它的一個參數(shù)。使用這種模式最好的例子是Collection.sort()方法了,它使用Comparator對象作為參數(shù)。根據(jù)Comparator接口不同實(shí)現(xiàn),對象會被不同的方法排序。

本文例子是,完成一個簡單地購物車,兩種付款策略可供選擇,一為信用卡,另外一種為Paypal。

首先創(chuàng)建策略接口,在本文例子中,付款金額作為參數(shù)。

package com.journaldev.design.strategy;public interface PaymentStrategy {public void pay(int amount);}

現(xiàn)在實(shí)現(xiàn)使用信用卡及Paypal兩種算法策略的實(shí)體類。

package com.journaldev.design.strategy;public class CreditCardStrategy implements PaymentStrategy {private String name;private String cardNumber;private String cvv;private String dateOfExpiry;public CreditCardStrategy(String nm, String ccNum, String cvv, String expiryDate){this.name=nm;this.cardNumber=ccNum;this.cvv=cvv;this.dateOfExpiry=expiryDate;}@Overridepublic void pay(int amount) {System.out.println(amount +' paid with credit/debit card');}}

此時,算法策略已經(jīng)準(zhǔn)備就緒,現(xiàn)在需要實(shí)現(xiàn)購物車以及能夠運(yùn)用付款策略的支付方法。

package com.journaldev.design.strategy;public class Item {private String upcCode;private int price;public Item(String upc, int cost){this.upcCode=upc;this.price=cost;}public String getUpcCode() {return upcCode;}public int getPrice() {return price;}}

package com.journaldev.design.strategy;import java.text.DecimalFormat;import java.util.ArrayList;import java.util.List;public class ShoppingCart {//List of itemsList<Item> items;public ShoppingCart(){this.items=new ArrayList<Item>();}public void addItem(Item item){this.items.add(item);}public void removeItem(Item item){this.items.remove(item);}public int calculateTotal(){int sum = 0;for(Item item : items){sum += item.getPrice();}return sum;}public void pay(PaymentStrategy paymentMethod){int amount = calculateTotal();paymentMethod.pay(amount);}}

注意,購物車的支付方法接受支付策略作為參數(shù),但是不在其內(nèi)部保存任何實(shí)例變量。

一個簡單地測試程序。

package com.journaldev.design.strategy;public class ShoppingCartTest {public static void main(String[] args) {ShoppingCart cart = new ShoppingCart();Item item1 = new Item('1234',10);Item item2 = new Item('5678',40);cart.addItem(item1);cart.addItem(item2);//pay by paypalcart.pay(new PaypalStrategy('myemail@example.com', 'mypwd'));//pay by credit cardcart.pay(new CreditCardStrategy('Pankaj Kumar', '1234567890123456', '786', '12/15'));}}

輸出如下:

50 paid using Paypal.50 paid with credit/debit card

重要點(diǎn):

此處可以構(gòu)建策略的實(shí)體變量,但是應(yīng)該盡量避免這種情況。因?yàn)樾枰WC對于特定的任務(wù)能夠?qū)?yīng)某個具體的算法策略,與Collection.sort()和Array.sort()方法使用comparator作為參數(shù)道理類似。 策略模式類似與狀態(tài)模式。兩者之間的不同,狀態(tài)模式中的Context(環(huán)境對象)包含了狀態(tài)的實(shí)例變量,并且不同的任務(wù)依賴同一個狀態(tài)。相反,在策略模式中策略是作為一個參數(shù)傳遞進(jìn)方法中,context(環(huán)境對象)不需要也不能存儲任何變量。 當(dāng)一組算法對應(yīng)一個任務(wù),并且程序可以在運(yùn)行時靈活的選擇其中一個算法,策略模式是很好的選擇。

這就是全部的Java策略模式,希望你喜歡上它了。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
中文在线不卡| 久久久久99| 久久国产电影| 黄色精品视频| 国产欧美精品| 91精品麻豆| 97精品久久| 日韩区欧美区| 欧美日韩亚洲一区| 麻豆91精品视频| 久久99影视| 激情不卡一区二区三区视频在线| 国产精品成久久久久| 播放一区二区| 日韩中文字幕区一区有砖一区| 中日韩男男gay无套| 日韩在线网址| 久久精品xxxxx| 国产精品分类| 日韩和的一区二在线| 欧美a级片一区| 免费观看日韩电影| 青青国产91久久久久久| 福利一区和二区| 午夜精品网站| 美国三级日本三级久久99| 日本不卡的三区四区五区| 国产精品久久久免费| 欧美亚洲精品在线| 日本成人在线网站| 日韩免费看片| 日韩欧美激情电影| 精品国产网站| 国产精品日本| 国产精品免费精品自在线观看| 国产激情在线播放| 免费看的黄色欧美网站| 国产欧美激情| 石原莉奈在线亚洲二区| 久久亚洲黄色| 亚洲第一区色| 国产午夜一区| 亚洲欧美日韩国产一区二区| 国产成人精品一区二区三区视频| 综合国产视频| 久久国产小视频| jizzjizz中国精品麻豆| 日本亚州欧洲精品不卡| 一区在线观看| 99久久精品费精品国产| 国产欧美日韩| 日本不卡一区二区| 欧美午夜不卡| 国产99久久| 国产一区二区三区亚洲| 天堂va在线高清一区| 亚洲欧洲另类| 伊人久久亚洲热| 国产一二在线播放| 福利一区二区| 精品欧美日韩精品| 精品视频自拍| 精品视频在线观看网站| 久久精品国内一区二区三区| 亚洲一区二区三区四区电影| 国产字幕视频一区二区| 四虎4545www国产精品| 日韩在线观看| 91精品在线观看国产| 丝袜美腿一区| 欧美日韩精品免费观看视完整| 黄毛片在线观看| 国产精品中文字幕亚洲欧美| 91成人超碰| 色综合狠狠操| 福利精品在线| 伊人久久高清| 在线精品观看| 久久国产麻豆精品| 超碰在线99| 久久中文字幕二区| 欧美午夜不卡| 日韩精品成人在线观看| 国产高清不卡| 无码日韩精品一区二区免费| 91欧美精品| 久久免费高清| 国产精品一线| 国产精品av一区二区| 日本色综合中文字幕| 亚洲成人av观看| 日本视频中文字幕一区二区三区| av高清一区| 成人午夜精品| 久久激五月天综合精品| 亚洲国产日韩欧美在线| 精品国产精品国产偷麻豆| 日本国产一区| 亚洲欧美久久精品| 久久精品亚洲欧美日韩精品中文字幕| 久久xxxx精品视频| 日韩88av| 国产精品久久久久9999高清| 亚洲国产不卡| 午夜日韩福利| 丝袜av一区| 免费在线成人网| 欧美日中文字幕| 香蕉成人av| 欧美日韩国产观看视频| 卡一精品卡二卡三网站乱码| 午夜亚洲一区| 亚洲v在线看| 国产成人精品一区二区三区免费| 日韩精品成人| 久久av在线| 日韩中文字幕区一区有砖一区| 国产精品嫩草99av在线| 老鸭窝毛片一区二区三区| 国产一区导航| 国产亚洲电影| 久久婷婷激情| 久久的色偷偷| 国产乱码精品一区二区三区亚洲人| 蜜桃久久久久久| 亚洲伊人精品酒店| 亚洲激情婷婷| 国产精品日韩欧美一区| 国产美女精品| 日韩精品一二三区| 国产在线不卡| 在线日韩电影| 亚洲在线观看| 日韩精品一级二级| 日韩区欧美区| 美女久久久精品| 捆绑调教日本一区二区三区| а√天堂8资源在线| 亚洲国产专区校园欧美| 欧美在线亚洲| 91麻豆精品| 久久青青视频| 亚洲免费一区二区| 97久久中文字幕| 欧美国产中文高清| 国产成人久久精品一区二区三区| 国产夫妻在线| 久久中文字幕二区| 日韩精品视频中文字幕| 国产精一区二区| 日韩成人高清| 蜜乳av另类精品一区二区| 国产精品亚洲欧美| 亚洲爱爱视频| 国产麻豆精品| 婷婷综合六月| 91免费精品国偷自产在线在线| 国产精品99在线观看| 亚洲一区国产| 久久精品欧洲| 蜜乳av另类精品一区二区| 国产精品久久久久av蜜臀| 亚洲午夜视频| 久久av网站| 亚洲精品裸体| 国产精品99一区二区| 精品一区二区三区在线观看视频| 国产精品美女| 欧美精品资源| 精品成人18| 日韩高清一级| 国产美女精品| 久久精品国产大片免费观看| 国产日产精品_国产精品毛片| 免费观看不卡av| www在线观看黄色| 欧美一区精品| 亚洲一区二区三区无吗| 久久中文字幕av| 久久久男人天堂| 国产精品1区在线| 欧美日韩99| 亚洲精品裸体| 亚洲欧美在线综合| 免费观看久久久4p| 亚洲成人三区| 欧美另类专区| 欧美高清不卡| 欧美成人精品| 欧美精品羞羞答答| 国内精品福利| 日韩成人高清| 蜜臀91精品国产高清在线观看| 成人国产精选| 日韩在线综合| 日韩视频一区二区三区在线播放免费观看| 日韩毛片视频| 久久中文视频| 伊人成人网在线看| 妖精视频成人观看www|