在商城系統中使用設計模式--簡單工廠模式


1.簡單工廠模式是屬於創建型模式,又叫做靜態工廠方法模式。
它的實現方式是由一個工廠類根據傳入的參數,動態決定應該創建哪一個產品類(這些產品類繼承自一個父類或接口)的實例。


2.簡單工廠模式由三種角色組成: 
(1)工廠角色:簡單工廠模式的核心,它負責實現創建所有實例的內部邏輯。工廠類的創建產品類的方法可以被外界直接調用,創建所需的產品對象。
(2)抽象產品角色:簡單工廠模式所創建的所有對象的父類,它負責描述所有實例所共有的公共接口。 
(3)具體產品角色:是簡單工廠模式的創建目標,所有創建的對象都是充當這個角色的某個具體類的實例。

 

3.場景:在一個商城系統中,用戶可以選擇三種支付方式,微信支付,支付寶支付,余額支付。

 

4.實現:

我們將創建一個 PaymentMethod 接口和實現 PaymentMethod 接口的實體類。下一步是定義工廠類 PayFactory

Main是演示我們簡單工廠模式的入口。

UML圖如下:

 步驟1.創建接口類

public interface PaymentMethod {
    void pay();
}

步驟2.實現接口類

public class Alipay implements PaymentMethod {
    @Override
    public void pay() {
        System.out.println("支付寶支付");
    }
}
public class BalancePay implements PaymentMethod {
    @Override
    public void pay() {
        System.out.println("余額支付");
    }
}
public class WechatPay implements PaymentMethod {
    @Override
    public void pay() {
        System.out.println("微信支付");
    }
}

步驟3.創建一個工廠,生成基於給定信息的實體類的對象。

public class PayFactory {

    public PaymentMethod getPayment(String payType){

        switch (payType){

            case "alipay":
                return new Alipay();
            case "wechatPay":
                return new WechatPay();
            case "balancePay":
                return new BalancePay();

            default:
                System.out.println("支付方式錯誤");

        }
        return null;

    }

}

步驟4.使用該工廠,通過傳遞類型信息來獲取實體類的對象。

public class Main {

    public static void main(String[] args) {

        PayFactory payFactory = new PayFactory();

        PaymentMethod paymentMethod = payFactory.getPayment("alipay");

        paymentMethod.pay();

    }

}

 

 附上demo源碼:

https://github.com/littleStone-chan/design-patternsIn-mall/tree/master/simple-factory

 

在工作中,不能靈活的時候設計模式。希望通過這次的學習,可以加深對設計模式對理解。

接下來會繼續整理出自己在工作對時候可以使用對設計模式,不對望指點。如果文章對您有幫助,github給個start吧。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM