package design.structure.facade;
public class PointsGift {
private String name ;
public PointsGift(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
package design.structure.facade;
public class PointsPaymentService {
public boolean pay(PointsGift pointsGift){
System.out.println("支付"+pointsGift.getName());
return true;
}
}
package design.structure.facade;
public class QualifyService {
public boolean isAvaliable(PointsGift pointsGift){
System.out.println("检验"+pointsGift.getName()+"积分资格通过,库存通过");
return true;
}
}
package design.structure.facade;
public class ShippingService {
public String shipGift(PointsGift pointsGift){
//物流系统的对接逻辑
System.out.println(pointsGift.getName()+"进入物流系统");
String shippingOrderNo = "666";
return shippingOrderNo;
}
}
package design.structure.facade;
import org.ietf.jgss.Oid;
public class GiftExchangeService {
private QualifyService qualifyService;
private PointsPaymentService pointsPaymentService;
private ShippingService shippingService;
public void setQualifyService(QualifyService qualifyService) {
this.qualifyService = qualifyService;
}
public void setPointsPaymentService(PointsPaymentService pointsPaymentService) {
this.pointsPaymentService = pointsPaymentService;
}
public void setShippingService(ShippingService shippingService) {
this.shippingService = shippingService;
}
public void giftExchange(PointsGift pointsGift){
if (qualifyService.isAvaliable(pointsGift)){
//资格校验通过
if (pointsPaymentService.pay(pointsGift)){
String shippingOrderNo = shippingService.shipGift(pointsGift);
System.out.println("物流系统下单成功订单号:"+ shippingOrderNo);
}
}
}
}
package design.structure.facade;
public class Test {
public static void main(String[] args) {
PointsGift pointsGift = new PointsGift("T恤");
GiftExchangeService giftExchangeService = new GiftExchangeService();
giftExchangeService.setQualifyService(new QualifyService());
giftExchangeService.setPointsPaymentService(new PointsPaymentService());
giftExchangeService.setShippingService(new ShippingService());
giftExchangeService.giftExchange(pointsGift);
}
}