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

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


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

 

3.場景:在一個商城系統中,用戶能夠選擇三種支付方式,微信支付,支付寶支付,餘額支付。設計模式

 

4.實現:微信

咱們將建立一個 PaymentMethod 接口和實現 PaymentMethod 接口的實體類。下一步是定義工廠類 PayFactoryide

Main是演示咱們簡單工廠模式的入口。學習

UML圖以下:微信支付

 步驟1.建立接口類spa

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.建立一個工廠,生成基於給定信息的實體類的對象。code

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吧。

相關文章
相關標籤/搜索