java設計模式-----簡單工廠模式
阿新 • • 發佈:2020-10-20
1.簡單工廠模式
直接貼圖
1.我建立了一個介面類 Pay 和 兩個 Pay的實現類 Alipay 和 WxPay,一個工廠類
2.Pay 介面類,定義了幾個介面方法,呼叫支付介面和支付回撥和當前的支付型別
3.Alipay 和 WxPay分別實現Pay介面
4.工廠類建立了一個對外的方法,供其他呼叫支付的類使用,工廠類會判斷行參type來返回對應的類物件,以下面main方法為例,main 方法需要建立PayFacotry物件,呼叫工廠方法,並傳實參來完成相應的微信支付或支付寶支付。
5.優缺點不細說,以自己實際業務來決定是否使用,比如前期就兩個支付用這種方式沒問題,後期需要增加其他更多的支付方式,那都需要去用if else 判斷,慢慢的可能工廠類就會變得臃腫。
6.這裡順便說個自己經常使用的做法,可以省了工廠類。大家有看到我在Pay接口裡面定義了一個getPaymentType方法,alipay 和 wxpay 分別返回了自己的型別,然後在PayService直接注入一個payList,型別為Pay,框架會自動把實現了Pay的類放到payList,因此只需要迴圈遍歷payList 呼叫 getPaymentType來處理後續的業務邏輯