日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

余額寶轉(zhuǎn)出到銀行卡要手續(xù)費(fèi)嗎 yuebao( 二 )


(3)客戶端代碼
public class PayEnum1Test {public static voidmain(String[] args) {PayEnum1Test payEnum1Test = new PayEnum1Test;payEnum1Test.pay(\”PAY_TYPE_BALANCE\”);payEnum1Test.pay(\”PAY_TYPE_HUABEI\”);payEnum1Test.pay(\”PAY_TYPE_YUEBAO\”);}public String pay(String payType){return PayTypeEnum1.valueOf(payType).pay;}}
(4)結(jié)果:
(5)總結(jié):
根據(jù)業(yè)務(wù)場(chǎng)景 , 如果代碼業(yè)務(wù)量少 , 可以用枚舉第二種 , 如果代碼業(yè)務(wù)量大 , 可以用枚舉第一種 。都可以解決if else代碼 。
02. 工廠模式
public interface PayFactory {String pay;}public class PayFactoryByBalance implements PayFactory {@Overridepublic String pay {System.out.println(\”支付寶余額支付\”);return \”支付寶余額支付\”;}}public class PayFactoryByHuabei implements PayFactory {@Overridepublic String pay {System.out.println(\”支付寶花唄支付\”);return \”支付寶花唄支付\”;}}public class PayFactoryByYuEBAO implements PayFactory {@Overridepublic String pay {System.out.println(\”支付寶余額寶支付\”);return \”支付寶余額寶支付\”;}}public class PayTypeFactory {private static Map<String,PayFactory> payTypeMap = new HashMap<>;static {payTypeMap.put(\”1\”,new PayFactoryByBalance);payTypeMap.put(\”2\”,new PayFactoryByHuabei);payTypeMap.put(\”3\”,new PayFactoryByYuEBAO);}public static PayFactory getPayType(String payType){return payTypeMap.get(payType);}}public class PayFactoryTest {public static voidmain(String[] args) {PayTypeFactory.getPayType(\”1\”).pay;PayTypeFactory.getPayType(\”2\”).pay;PayTypeFactory.getPayType(\”3\”).pay;}}
結(jié)果:
03. 策略模式+工廠模式
策略模式一句話就是 , 定義一系列算法 , 把他們封裝起來(lái) , 并且使它們可以相互替換 。具體來(lái)說(shuō)就說(shuō) , 定義多個(gè)策略對(duì)象 , 每個(gè)策略對(duì)象里面封裝好多種算法 , 再定義一個(gè)上下文對(duì)象 , 該上下文對(duì)象負(fù)責(zé)根據(jù)傳入不同的策略對(duì)象 , 執(zhí)行不同的行為 。
(1)定義一個(gè)抽象的公共策略接口Strategy , 通常為接口 , 定義每個(gè)策略或算法必須具有的方法和屬性 。
public interface PayStrategy {String pay;}
(2)定義一個(gè)context對(duì)象 , 即扮演一個(gè)上下的文角色 , 起承上啟下的封裝作用 , 其行為隨著策略對(duì)象改變而改變 。
public class PayContext {private PayStrategy payStrategy;publicPayContext(PayStrategy payStrategy) {this.payStrategy = payStrategy;}public String executeStrategy{return payStrategy.pay;}}
(3)定義一個(gè)具體的余額支付策略
public class PayStrategyByBalance implements PayStrategy {@Overridepublic String pay {System.out.println(\”支付寶余額支付\”);return \”支付寶余額支付\”;}}
(4)定義一個(gè)具體的花唄支付策略
public class PayStrategyByHuabei implements PayStrategy {@Overridepublic String pay {System.out.println(\”支付寶花唄支付\”);return \”支付寶花唄支付\”;}}
(5)定義一個(gè)具體的余額寶支付策略
public class PayStrategyByYuEBAO implements PayStrategy {@Overridepublic String pay {System.out.println(\”支付寶余額寶支付\”);return \”支付寶余額寶支付\”;}}
(6)客戶端
public class PayStrategyTest {public static void main(String[] args) {PayStrategyTest payStrategyTest = new PayStrategyTest;payStrategyTest.method(\”1\”);payStrategyTest.method(\”2\”);payStrategyTest.method(\”3\”);}public void method(String payType){PayContext payContext;if (\”1\”.equals(payType)){payContext = new PayContext(new PayStrategyByHuabei);payContext.executeStrategy;}else if (\”2\”.equals(payType)){payContext = new PayContext(new PayStrategyByYuEBAO);payContext.executeStrategy;}else if (\”3\”.equals(payType)){payContext = new PayContext(new PayStrategyByBalance);payContext.executeStrategy;}}}

推薦閱讀