工厂模式三(抽象工厂模式)

业务场景:项目中有一个支付产品,使用它购买商品后,会有支付清单,和商品清单。

常规实现

新建接口

业务逻辑实现上,会针对不同的清单通过面向接口来实现。所以会新建两个接口,如下

public interface IBill {
    void addBill();
}
public interface IWares {

    void addWares();
}

 实现接口

public class AliPayBill implements IBill {

    public void addBill() {
        System.out.println("阿里支付账单");
    }
}
public class AliPayWares implements IWares {

    public void addWares() {
        System.out.println("阿里商品清单");
    }
}

 调用

public class Test{

    IBill  bill = new AliPayBill() ;
    bill.addBill();

    IWares ware = new AliPayWares();
    ware.addWares();
}

抽象工厂模式

public abstract class PayFactory {
    public void init(){
        System.out.println("初始化数据");
    }

    protected abstract IBill createBill();

    protected abstract IWares createWares();
}

 具体的创建清单逻辑又交给继承了抽象工厂的实现类。

public class AlibabaPayFactory extends PayFactory {
    protected IBill createBill() {
        super.init();
        return new AliPayBill();
    }

    protected IWares createWares() {
        super.init();
        return new AliPayWares();
    }
}

测试类:

public class Test {
    public static void main(String[] args) {
        AmazonPayFactory amazonPayFactory = new AmazonPayFactory();
        amazonPayFactory.createBill().addBill();
        amazonPayFactory.createWares().addWares();
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值