这是一个简单工厂模式,使用的是开发中支付方式选择的案例
/**
* 钱包的接口
* zhouhaodong
* created at 2018/3/7 19:47
*/
public interface Wallet {
/**
* 支付的抽象方法
* @return
*/
String pay();
}
----------------------------------------------------------------------------------------------------------------------------------
一个微信支付的类,实现钱包的接口,重写钱包的支付方法
/**
* 微信的支付渠道类
* zhouhaodong
* created at 2018/3/7 19:48
*/
public class WeiXin implements Wallet {
@Override
public String pay() {
//进行支付操作
return "微信支付的结果";
}
}
---------------------------------------------------------------------------------------------------------------------------------
一个支付宝支付的类,实现钱包的接口,重写钱包的支付方法
/**
* 支付宝支付的渠道类
* zhouhaodong
* created at 2018/3/7 19:50
*/
public class ZhiFuBao implements Wallet {
@Override
public String pay() {
//进行支付操作
return "支付宝支付结果";
}
}
---------------------------------------------------------------------------------------------------------------------------------
工厂在此---
/**
*
* @param name 需要支付渠道的name
* @return 渠道对象
*/
private static Wallet initFactory(String name){
switch (name) {
case "weixin":
return new WeiXin();
case "zhifubao":
return new ZhiFuBao();
default:
break;
}
return null;
};
这是对工厂方法的使用
Wallet login = initFactory("zhifubao");
//支付的结果
String result = login.pay();
Log.e("+--+",result+"");
是不是很简单呢