兵兵有你

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

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  103 随笔 :: 1 文章 :: 2 评论 :: 94728 阅读

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   greatbing  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
点击右上角即可分享
微信分享提示