兵兵有你

人品好,气质差.丢了工作就回家...

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

1.工厂模式

//例如,场景中要求能使用多种支付方式
//1.先声明一个工厂
public class PayFactory {

    public static Payment makePay(String payMode){
        Payment bankFactory = null;
        switch(payMode) {
            case "PA":
                bankFactory = new PingAnPay();
                break;
            case "JJ":
                bankFactory = new JjPay();
                break;
            default:
                bankFactory = null;
        }
        return bankFactory;
    }
}

//2. 创建每个对象都要用的接口方法
public interface Payment {

    String register();
}

//3.第一种支付方式来实现,第二种支付方式来实现
public class PingAnPay implements Payment{
    @Override
    public String register() {
        return "A银行注册";
    }
}

public class JjPay implements Payment{
    @Override
    public String register() {
        
        return "B银行注册";
    }
}
//4.使用过程中的调用 
    public static void main(String[] args) {
        String bankType = "PA";
        Payment payment = PayFactory.makePay(bankType);
        System.out.println(payment.register());
    }

 2.策略模式

//1.同样编辑一个实现类,但这里有个构造函数能初始化对象,同样将每个对象实现
public class PayCenter {
    private  Payment payment;

    public PayCenter(String bankType) {
        switch (bankType){
            case "PA":
                payment = new PingAnPay();
                break;
            case "JJ":
                payment = new JjPay();
                break;
            default:
                payment = new PingAnPay();
        }

    }

    public String register(){
        return payment.register();
    }
}

//2.业务代码中就可以直接调用了,减少了需要多了解一个工厂类
    public static void main(String[] args) {
        String bankType = "JJ";
        PayCenter payCenter = new PayCenter(bankType);
        System.out.println(payCenter.register());
    }

 

posted on 2024-11-19 22:21  greatbing  阅读(31)  评论(0)    收藏  举报