简单工厂模式

本文介绍了Java中静态工厂模式的应用,通过接口和工厂类实现根据不同支付类型创建对应实例,降低模块之间的依赖,隐藏了底层实现细节。
摘要由CSDN通过智能技术生成

#父类或者接口作为返回值

也叫静态工厂模式

只需要知道要创建哪种类型的产品(例如用int/String/enum类型数据指定),不需要关注创建对象的具体过程,降低模块间的耦合

屏蔽底层产品类,以及具体实现,只需要知道哪个工厂可以创造这个产品(不需要知道iphone车间怎么制造,只需要知道有个厂,比如富士康,可以制造就可以了)

package com.factory;

public interface Ipay {

    void pay();
}
package com.factory;
//简单工厂模式
public class PayFactory {

    /**
     * 根据选择的不同支付方式,生成对应的支付对象
     */
    //创建支付对象
    //Ipay:接口变量
    public static Ipay createPayInstance(int type){
        Ipay ipay = null;
        if (type == PayTypeConstance.PAY_AlI){
            ipay = new AliPay();
        }else if (type==PayTypeConstance.PAY_WX){
            ipay = new WxPay();
        }
        return ipay;
    }
}
package com.factory;

public class AliPay implements Ipay {
    @Override
    public void pay() {
        System.out.println("生成支付宝支付");
    }
}
package com.factory;

public class WxPay implements Ipay {
    @Override
    public void pay() {
        System.out.println("生成微信支付");
    }
}
package com.factory;
//常量类
public class PayTypeConstance {
    //常量
    public static final int PAY_AlI=1;
    public static final int PAY_WX=2;
    public static final int PAY_PAL=3;
}
package com.factory;
//App 测试类
public class App {
    public static void main(String[] args) {
        AliPay aliPay=new AliPay();
        aliPay.pay();

        WxPay wxPay=new WxPay();
        wxPay.pay();

        Ipay payinstance=PayFactory.createPayInstance(PayTypeConstance.PAY_AlI);
        payinstance.pay();

        Ipay payinstance2=PayFactory.createPayInstance(PayTypeConstance.PAY_WX);
        payinstance2.pay();
    }
}
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值