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()); }
浙公网安备 33010602011771号