一个简单的例子,模拟应用程序中调取支付接口。
支付接口
public interface Payment {
void pay(double price);
}
微信支付类,实现支付接口
public class WechatPayment implements Payment {
@Override
public void pay(double price) {
System.out.println("通过微信支付" + price + "元.");
}
}
支付宝支付类,实现支付接口
public class AliPayment implements Payment {
@Override
public void pay(double price) {
System.out.println("通过支付宝支付" + price + "元.");
}
}
支付工厂类
public class PaymentFactory {
public static Payment getPayment(PayType payType) {
Payment payment = null;
switch (payType) {
case ALI_PAYMENT:
payment = new AliPayment();
break;
case WECHAT_PAYMENT:
payment = new WechatPayment();
break;
default:
}
return payment;
}
}
支付方式枚举
public enum PayType {
ALI_PAYMENT, WECHAT_PAYMENT
}
客户端类,运行测试
public class FactoryPatternTest {
public static void main(String[] args) {
Payment payment = PaymentFactory.getPayment(PayType.WECHAT_PAYMENT);
payment.pay(99);
Payment payment1 = PaymentFactory.getPayment(PayType.ALI_PAYMENT);
payment1.pay(199);
}
}
运行结果
通过微信支付99.0元.
通过支付宝支付199.0元.
Process finished with exit code 0