因为大多软件网上购物的流程都差不多,所以这里采用模板模式,将购物作为一个模板抽象类,而各款软件的购物方式作为
其子类,继承父类,父类不希望子类修改它的购物流程所以用关键字final修饰
abstract class TemplateShopping{
final void shoppingMethod(){
this.scanning();//浏览
this.choose();//选择
if(!iscustomerwantscallService()){//客服
callService();
}
this.sendGoods();//发货
this.computerPrice();//结算方式
this.orderPay();//支付方式
this.showOrder();//查看订单号,
}
public void scanning(){
System.out.println("浏览商品:");
}
public void choose(){
System.out.println("选择商品:");
}
public void showOrder(){
System.out.println("您的订单号为:");
}
abstract void callService();
abstract void sendGoods();
abstract void computerPrice();
abstract void orderPay();
public boolean iscustomerwantscallService(){
return false;
}
}
//在天猫上购物
class Tianmao extends TemplateShopping{
public void callService(){
System.out.println("小主,有什么可以为您服务的吗?");
}
public void sendGoods(){
System.omut.println("您的包裹正在揽收:");
}
public void computerPrice(){
System.out.println ("请选择结算方式:");
}
public void orderPay(){
System.out.println("请选择支付方式:");
}
}
public class TestShopping{
public static void main(String[] args){
System.out.println("天猫的购物流程:");
TemplateShopping tm=new Tianmao();
tm.shoppingMethod();
}
}
截图: